MyNixOS website logo
Description

Command lines for options that take multiple arguments.

multiarg helps you build command-line parsers for programs with options that take more than one argument. See the documentation in the Multiarg module for details.

Multiarg

This is multiarg, a library of combinators to parse command lines.

For "released" code see Hackage:

http://hackage.haskell.org/package/multiarg

multiarg is on Github:

http://www.github.com/massysett/multiarg

Building

If you obtained this code through Hackage, just build it using the ordinary Cabal command:

cabal install

If you obtain this code on Github, you will first need to generate the Cabal file and generate the tests. This will require that you install two libraries:

cabal install cartel quickpull

Then run this script to generate the Cabal file and the tests:

sh generate

Versioning

multiarg releases are numbered in accordance with the Haskell Package Versioning Policy.

Currently the multiarg library depends only on the "base" package, so multiarg should have wide compatibility with different compilers and sets of libraries. The tests have some additional dependencies.

Build history

If you're having trouble building multiarg, try looking at the travis-ci build history at:

https://travis-ci.org/massysett/multiarg

It shows successful builds and the versions of any package dependencies that were installed when that build succeeded, so it might help you diagnose any dependency issues.

Build Status

Similar libraries

Of course there are many command-line parsing modules and libraries out there; here are some comparisons.

optparse-applicative: very featureful with a well thought-out interface. Builds help for you. I often use this if it meets my needs. From what I can tell, though, it strips out information about the relative ordering of the words from the command line; for instance, if the user typed "hello --opt1 --opt2", you cannot tell whether she entered "--opt1" before she entered "--opt2". Also, from what I can tell it cannot easily parse options that take more than one argument.

GetOpt: comes with the base libraries, so you don't have to install anything extra, which gives it a huge advantage. Keeps information about the relative ordering of the words from the command line. Cannot easily parse options that take more than one argument.

cmdargs: after multiple passes through the Haddocks I could never make any sense of this library at all, which must be a reflection of my level of Haskell ignorance.

More comparisons are at the Haskell Wiki.

Metadata

Version

0.30.0.10

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows