Murex is a cross-platform shell like Bash but with greater emphasis on writing safe shell scripts and powerful one-liners while maintaining readability.
A quick breakdown of the project structure:
* builtins contains all the plugins exposed via the languages runtime * config is APIs for the runtime config * debug is debugging APIs * docs is the murex online documentation. Contents in here are autogenerated and some of this will be compiled into the murex executable. * examples (does not contain Go code) is murex shell script examples * gen is the templates for docgen * lang contains the language parsers and runtime environment * shell is the code for the interactive shell * test is the testing framework * utils directory is tools used exclusively within this Go source code * vendor contains 3rd party packages used by murex
flags.go godoc.go main.go source.go
Path | Synopsis |
---|---|
builtins | Package builtins is the gatekeeper to the various modules, additional data types and builtin functions within murex |
builtins/core/arraytools | Package arraytools provides functions for working with arrays and maps |
builtins/core/autocomplete | |
builtins/core/config | |
builtins/core/datatools | Package datatools provides utilities for manipulating data structures |
builtins/core/element | |
builtins/core/escape | Package escape provides some handy string escaping utilities |
builtins/core/httpclient | Package httpclient provides useful HTTP functions |
builtins/core/index | |
builtins/core/io | |
builtins/core/management | Package management provides misc functions for managing your murex runtime environment |
builtins/core/mkarray | Package mkarray provides functions for rapidly building arrays |
builtins/core/modules | |
builtins/core/open | |
builtins/core/openimage | Package openimage renders bitmap image data on your terminal |
builtins/core/pipe | |
builtins/core/processes | Package processes provides core functions for managing processes |
builtins/core/random | |
builtins/core/ranges | |
builtins/core/runtime | Package cmdruntime provides data on murex's runtime state |
builtins/core/structs | Package structs provides code syntax structures for murex |
builtins/core/tabulate | |
builtins/core/test | |
builtins/core/textmanip | Package textmanip provides useful string manipulation functions when working with arrayed data types |
builtins/core/time | Package time provides some core time based builtins |
builtins/core/typemgmt | Package typemgmt provides core functions for managing murex types and variables |
builtins/docs | |
builtins/events | Package events provides a basic event framework for murex |
builtins/events/onFileSystemChange | |
builtins/events/onKeyPress | |
builtins/events/onSecondsElapsed | |
builtins/optional/coreutils | Package coreutils is an optional package that recreates some basic Linux/UNIX tools for Windows users |
builtins/optional/encoders | Package encoders provides some handy builtins for encoding and decoding streams in various different formats |
builtins/optional/inline | Package inline allows you to inline code from other languages |
builtins/optional/qr | Package qrimage generates a QR code image |
builtins/optional/time | Package time provides some optional time based builtins |
builtins/pipes/file | |
builtins/pipes/net | |
builtins/pipes/null | Package null provides the null interface (akin to /dev/null). |
builtins/pipes/streams | Package streams provides the standard streams used by murex and thus is REQUIRED by murex. |
builtins/pipes/term | Package term provides the TTY STDOUT and STDERR interfaces. |
builtins/types/apachelogs | Package apachelogs provides definitions for the `commonlog` and `errorlog` data types |
builtins/types/binary | Package binary provides definitions for the `bin` data type |
builtins/types/bson | Package bson provides definitions for the `bson` data type |
builtins/types/columns | Package columns provides definitions for the column, `column`, data type |
builtins/types/csv | Package csv provides definitions for the `csv` data type |
builtins/types/csv-bad | Package csvbad provides definitions for the `csv-bad` data type |
builtins/types/example | |
builtins/types/generic | Package generic provides definitions for the generic, `*`, data type |
builtins/types/hcl | Package hcl provides definitions for the `hcl` data type |
builtins/types/json | Package json provides definitions for the `json` data type |
builtins/types/jsonlines | Package jsonlines provides definitions for the `jsonlines` data type |
builtins/types/null | |
builtins/types/numeric | Package numeric provides definitions for numeric data types (int, float, num) |
builtins/types/querystring | Package string provides definitions for the `str` data type |
builtins/types/sexp | Package sexp provides definitions for the S-Expression data types: `sexpr` and `csexp` |
builtins/types/string | Package string provides definitions for the `str` data type |
builtins/types/toml | Package toml provides definitions for the `toml` data type |
builtins/types/unicode | Package unicode provides definitions for the unicode, `utf8`, data type |
builtins/types/yaml | Package yaml provides definitions for the `yaml` data type |
config | Package config provides APIs for managing the shell's runtime config |
config/defaults | Package defaults defines the default state for many run time config |
config/profile | Package profile is used to read the various non-default murex user profiles and modules |
debug | Package debug provides debugging APIs |
lang | Package lang provides the parser for the murex shell scripting language |
lang/proc/parameters | Package parameters provides parsing for language command line parameters within murex |
lang/proc/pipes | Package pipes provides runtime information about murex named pipes |
lang/proc/runmode | Package runmode provides constants used to describe the run mode of the murex interpreter |
lang/proc/state | Package state provides constants used to describe the runtime state of murex functions |
lang/proc/stdio | |
lang/ref | Package ref provides some reference structures required by multiple packages |
lang/types | |
shell | Package shell provides sources for the interactive shell |
shell/autocomplete | |
shell/hintsummary | |
shell/history | |
shell/userdictionary | Package userdictionary provides `config` hooks for the spellchecker user dictionary |
shell/variables | |
test | |
test/count | Package count is used to count the number of test cases run |
test/count/server | |
utils | |
utils/alter | |
utils/ansi | Package ansi provides APIs for writing common ASNI escape sequences to the terminal |
utils/cd | Package cd changes the current working directory and updates the global working |
utils/consts | Package consts consolidates common values used throughout the source code |
utils/counter | Package counter provides a thread safe counter using mutexes |
utils/docgen | |
utils/docgen/api | Package docgen contains all the executing code of the docgen CLI but in API form |
utils/escape | Package escape provides tools for escaping command line snippets of code |
utils/gopath | Package gopath is used during testing which points test files towards go source code |
utils/home | Package home is used to return the users home directory |
utils/json | |
utils/man | Package man is murex's man page parser to provide flag auto-complete suggestions |
utils/mxjson | |
utils/parser | |
utils/posix | Package posix is a quick helper function to determine if the running platform is POSIX or not |
utils/readall | Package readall provides an alterative to ioutil.Readall but with support for context.Context |
utils/readline | Package readline is a pure-Go re-imagining of the UNIX readline API |
utils/which | Package which provides similar functionality to the UNIX command of the same name |
Package main imports 17 packages (graph). Updated 2021-01-13. Refresh now. Tools for package owners.