Nav apraksta

xEgoist 894022ced8 Added CI build for aarch64 for all platforms 2 gadi atpakaļ
.github 894022ced8 Added CI build for aarch64 for all platforms 2 gadi atpakaļ
.gitattributes d3cc334855 fix eol to be lf 3 gadi atpakaļ
.gitignore ea1f4a3bed convert BASH test to Zig so we can start testing on Windows 3 gadi atpakaļ
GitRepoStep.zig fc7f561642 zig update: accomodate language changes and fix non-release URL 2 gadi atpakaļ
README.md 9cb83cbd63 finalize changes 3 gadi atpakaļ
build.zig b0068ffd40 zig update 3 gadi atpakaļ
build2.zig 894022ced8 Added CI build for aarch64 for all platforms 2 gadi atpakaļ
fixdeletetree.zig 42f68cb9b4 fix bug in fixdeletetree.zig 3 gadi atpakaļ
test.zig e522e96dc6 upgrade versions in test so it works on macos-aarch64 2 gadi atpakaļ
win32exelink.zig fc7f561642 zig update: accomodate language changes and fix non-release URL 2 gadi atpakaļ
zigetsha fc7f561642 zig update: accomodate language changes and fix non-release URL 2 gadi atpakaļ
zigup.zig 9f8c5f98cd riscv64 added 2 gadi atpakaļ

README.md

zigup

Download and manage zig compilers.

Usage

# fetch a compiler and set it as the default
zigup <version>
zigup master
zigup 0.6.0

# fetch a compiler only (do not set it as default)
zigup fetch <version>
zigup fetch master

# print the default compiler version
zigup default

# set the default compiler
zigup default <version>

# list the installed compiler versions
zigup list

# clean compilers that are not the default, not master, and not marked to keep. when a version is specified, it will clean that version
zigup clean [<version>]

# mark a compiler to keep
zigup keep <version>

# run a specific version of the copmiler
zigup run <version> <args>...

How the compilers are managed

zigup stores each compiler in a global "install directory" in a versioned subdirectory. On posix systems the "install directory" is $HOME/zig and on windows the install directory will be a directory named "zig" in the same directory as the "zigup.exe".

zigup makes the zig program available by creating an entry in a directory that occurs in the PATH environment variable. On posix systems this entry is a symlink to one of the zig executables in the install directory. On windows this is an executable that forwards invocations to one of the zig executables in the install directory.

Both the "install directory" and "path link" are configurable through command-line options --install-dir and --path-link respectively.

Building

Run zig build to build, zig build test to test and install with:

# install to a bin directory with
cp zig-out/bin/zigup BIN_PATH

TODO

  • set/remove compiler in current environment without overriding the system-wide vesrion.

Dependencies

zigup depends on https://github.com/marler8997/ziget which in turn depends on other projects depending on which SSL backend is selected. You can provide -Dfetch to zig build to automatically clone all repository dependencies, otherwise, the build will report a missing dependency error with an explanation of how to clone it.

The windows target depends on https://github.com/SuperAuguste/zarc to extract zip files. This repo might point to my fork if there are needed changes pending the acceptance of a PR: https://github.com/marler8997/zarc.

On linux and macos, zigup depends on tar to extract the compiler archive files (this may change in the future).