MyNixOS website logo
Description

Archive execution tool.

The ARX system provides services for packaging, deploying and running source code. No particular format or framework is needed -- a directory of code and a command to run are enough. The system has no in-built notion of remote connections, job servers or clusters; all automation is captured as Bourne compatible scripts.

An archive of the source code, a command and optionally an environment are encoded together in a Bourne shell script that uses a small number of UNIX utilities in a broadly portable way. The generated scripts can be run directly or fed to sh on STDIN. This latter feature is useful when one would like to use ssh and sudo to set an appropriate executation context, for example running: ssh [email protected] sudo sh.

The shell tools used are head, sed, date, tr and tar. The calls to tar sometimes use -j and -z; these calls to tar may result in calls to bzip2 and gzip. Scripts have been tested with dash and the GNU tools as well as the sh and tools that are part of busybox.

The arx command line tool provides the tmpx subcommand for preparing jobs to run and the shdat subcommand for access to the low-level shell encoder. The System.Posix.ARX module provides access to the routines used for constructing commands and environments, describing archives and building Bourne shell scripts.

One way I have used arx is to test the Cabal source archive for this package:

arx tmpx ./dist/arx-* // 'cd arx-* && cabal configure && cabal build' | sh

There are binary arx command line tool releases available from:

https://github.com/solidsnack/arx/downloads

For each supported platform, there is an archive containing arx and signature files (SHA 512 and GPG).

Metadata

Version

0.3.2

Executables (1)

  • bin/arx

Platforms (75)

    Darwin
    FreeBSD 13
    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-freebsd13
  • 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-freebsd13
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows