choosenim for choosey nimions
This program adds a git subcommand for Nim git nim
and installs itself
next to your Nim compiler so that if your compiler is in your PATH
, so is
gitnim.
The git nim
subcommand allows you to choose from precompiled Nim releases and
download/install them directly by managing your Nim installation as any other
git repository.
This Nim repository also links to the distribution from https://github.com/disruptek/dist, which is a hand-curated monorepo holding the most useful Nim modules from the ecosystem.
When run, gitnim displays or switches branches in the Nim repository and updates the dist submodules to ensure you always have easy access to the latest features and fixes as matched to your compiler.
We use git for distribution; what else?
$ git clone https://github.com/disruptek/gitnim_osx gitnim
A critical step; humor me on this one. The location of the compiler is used to infer the installation directory for gitnim itself.
$ export PATH=`pwd`/gitnim/bin:$PATH
You now have a statically-linked Nim binary for your Linux-x64 system, so you can immediately compile gitnim.
This will automatically install the gitnim binary next to the compiler
binary according to your PATH
, enabling the git nim
subcommand.
$ cd gitnim
$ nim c gitnim/gitnim.nim
With no additional arguments, git nim
will check the network for updates and
present the available Nim releases for selection.
The current distribution will be updated from the network, if necessary.
$ git nim
When a version is provided, git nim
will switch to that version immediately
without querying the network, provided the version exists locally.
The distribution will be updated without querying the network, if possible.
$ git nim 1.4.3
When a tag is provided, git nim
will switch to the tagged version immediately
without querying the network, provided the tagged reference exists locally.
The distribution will be updated without querying the network, if possible.
$ git nim devel
$ git nim stable
$ git checkout -b "my favorite nims"
$ git remote rename origin upstream
$ git remote add origin "[email protected]:your_name/gitnim.git"
$ git push --set-upstream origin "your branch name"
$ git tag -a "tag_name" -m "your description"
$ git push --tags
$ git push --delete origin tag_name
$ git remote add jeff https://github.com/jeff/gitnim
$ git nim jeff/1.3.3
https://github.com/disruptek/gitnim
MIT