wizard

You provide the archive, Wizard does the rest.

important

This project uses elvish version 0.21.0.

examples

simple install
elvish main.elv -c https://github.com/neovim/neovim/archive/68eece8b849da73bb9c93dabd6403ed0fb2f4174.zip
install all the registry for ARM, excluding github.com:tsoding/boomer
var @registry = (elvish main.elv -l _)
for url [(keep-if { |it| and (not (re:match "amd64" $it)) (not (re:match "x86_64" $it)) (not (re:match "x64" $it)) (not (re:match "tsoding/boomer" $it)) } $registry)] {
  elvish main.elv -c $url
}
install an archive that requires dependencies to build: github.com:tsoding/boomer
elvish main.elv -c https://github.com/tsoding/boomer/archive/97189f7ef07859a86420ef11258ca29527774d9c.zip ^
    --options nim=$E:HOME/opt/bin/nim-2.2.10 ^
    --options opengl=$E:HOME/opt/https_3A_2F_2Fgithub.com_2Fnim-lang_2Fopengl_2Farchive_2F8e2e098f82dc5eefd874488c37b5830233cd18f4/opengl-8e2e098f82dc5eefd874488c37b5830233cd18f4/src ^
    --options x11=$E:HOME/opt/https_3A_2F_2Fgithub.com_2Fnim-lang_2Fx11_2Farchive_2F29aca5e519ebf5d833f63a6a2769e62ec7bfb83a/x11-29aca5e519ebf5d833f63a6a2769e62ec7bfb83a

installation process

By default, everything will be installed under ~/opt/, which can be changed with the --prefix (-p) option.

  1. 1 command-line options are parsed
  2. 1 a handler for the archive URL is searched
  3. the URL to the archive is sanitized2
  4. the archive is downloaded in $prefix
  5. the archive is extracted to $prefix without the archive extension
  6. 3 the handler runs some post-extraction code
  7. 3 the handler links build artifacts into $prefix/bin

  1. An error might be returned. ↩︎ ↩︎

  2. Here, to sanitize a URL means (1) replacing all “/” with “_2F” and (2) replacing all “:” with “_3A”. ↩︎

  3. The handler might not have this step. ↩︎ ↩︎