package morbig
Install
Dune Dependency
Authors
Maintainers
Sources
md5=8829a7d682d7182c3d066b9ee42dec40
sha512=ed3fc21e6e9840a1a11f57cc34e9cd7f767227281c5822dd324f4b583a6ed126a22c9b79f3b3cf7b0dbdf6ff9c065e2ca25984e56aff9bd7f6ca41ec393525f9
Description
Morbig is a parser for shell scripts written in the POSIX shell script language. It parses the scripts statically, that is without executing them, and constructs a concrete syntax tree for each of them. The concrete syntax trees are built using constructors according to the shell grammar of the POSIX standard.
Published: 18 Apr 2023
README
Morbig
A trustworthy static parser for POSIX shell
Morbig is a parser for shell scripts written in the POSIX shell script language. It parses the scripts statically, that is without executing them, and constructs a concrete syntax tree for each of them. The concrete syntax trees are built using constructors according to the shell grammar of the POSIX standard.
Download
git clone git@github.com:colis-anr/morbig.git
License and copyright
See COPYING.
Documentation
For tagged versions, you can have a look at the official documentation. We also provide custom documentation for the latest development version. Finally, you can always build the documentation yourself with:
make doc
Are you in a hurry?
Yes? Pull our docker image:
docker pull colisanr/morbig:latest
Then, define the following shell function:
morbig () {
D=$(cd "$(dirname "$1")"; pwd)
B=$(basename "$1")
docker run \
-v "$D":/mnt \
colisanr/morbig:latest --as simple /mnt/"$B"
}
After that, you should be able to run Morbig like this:
morbig my-script.sh
This will create a JSON file named my-script.sh.sjson
.
You can also build a local docker image from the root of this repository:
docker build -t morbig .
Now if you want to use more features of Morbig, take the time to follow the building instructions of the next section.
Manual instructions
Install using OPAM
Please type
opam install morbig
to get the latest public release of Morbig.
If you want to use the development version of Morbig, read the next sections.
Dependencies
Morbig depends on the following software:
dune
menhir
OCaml ≥ 4.11. Older versions might work but are not officially supported.
odoc (for documentation only)
yojson and ppx_deriving_yojson
visitors
In case of discrepancies on dependencies, dune-project
is the source of truth. Our continuous integration ensures that it is up-to-date.
Building
make
Installing
For OPAM-based environments:
make install
For system-wide installs:
PREFIX=... make install
Testing
make check