{"repo":"binpash/libdash","free":true,"listed":false,"github":"https://github.com/binpash/libdash","clone":"git clone https://github.com/binpash/libdash.git","description":"The dash shell as a linkable library. Tracks https://git.kernel.org/pub/scm/utils/dash/dash.git, with extended interfaces, bindings for Python and OCaml, and tools for generating JSON representations of shell scripts.","language":"C","stars":52,"topics":["shell","ocaml","parser","library","posix","posix-sh","posix-shell","python","shell-script"],"license":null,"category":"cli-tools","readme_excerpt":"libdash is a fork of the Linux Kernel's dash shell that builds a linkable library with extra exposed interfaces. The primary use of libdash is to parse shell scripts, but it could be used for more. The Python bindings are packaged as the libdash PyPi package. The OCaml bindings---packaged as the libdash OPAM package---include two executables, shell to json and json to shell , which let you conveniently parse POSIX shell scripts into a JSON AST. What are the dependencies? The C code for dash should build on a wide variety of systems; it requires libtool and autotools ( aclocal , autoheader , automake , autoconf ). The library may not build on platforms with esoteric linkers; it's been tested on macOS and Linux. The Python and OCaml bindings depend on being able to build the C code. See libdash.opam for details on the OCaml code's dependencies, which includes the build-time external dependencies. Python wheels have no need for these build-time dependencies, but building from a Python source distribution will only succeed when libtool and autotools are present. The CI scripts (in .github/workflows/build.yml ) give build details. How to build libdash from source Python Run python3 setup.py install . On macOS, you must first install the build dependencies via brew install libtool autoconf automake . You can test the Python bindings by running: OCaml Install the OPAM file: opam pin add . or opam install . . This will build the OCaml library and install it in your OPAM repository. T","default_branch":null,"files":null,"tree":[],"storefront":"/r/binpash","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/binpash/libdash/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}