asdf/README.md

116 lines
2.3 KiB
Markdown
Raw Normal View History

2014-12-18 12:08:02 -07:00
# asdf
### _extendable version manager_
2014-09-29 09:51:09 -07:00
2014-12-20 07:16:14 -07:00
> Feel free to add support for the language you want. There is a [simple API](https://github.com/HashNuke/asdf/blob/master/docs/creating-package-sources.md) for it. For now, I've added support for the following languages:
2014-09-29 09:51:09 -07:00
2014-12-21 06:13:42 -07:00
> * [Ruby](#TODO)
> * [Erlang](https://github.com/HashNuke/asdf-erlang)
> * [Elixir](https://github.com/HashNuke/asdf-elixir)
2014-12-20 07:16:14 -07:00
>
2014-12-21 06:13:42 -07:00
> -- [@HashNuke](https://twitter.com/HashNuke)
2014-09-29 09:51:09 -07:00
2014-12-18 12:08:02 -07:00
[![Support via Gratipay](https://cdn.rawgit.com/gratipay/gratipay-badge/2.3.0/dist/gratipay.png)](https://gratipay.com/HashNuke/)
2014-11-30 06:46:11 -07:00
2014-12-20 07:16:14 -07:00
---
2014-11-30 06:46:11 -07:00
2014-11-30 20:32:14 -07:00
## Install
2014-11-30 06:46:11 -07:00
2014-11-30 20:32:14 -07:00
Copy-paste the following into command line:
2014-11-30 06:46:11 -07:00
2014-11-30 20:32:14 -07:00
```bash
git clone https://github.com/HashNuke/asdf.git ~/.asdf
2014-12-20 07:05:56 -07:00
echo 'export PATH="$HOME/.asdf/bin:$HOME/.asdf/shims:$PATH"' >> ~/.bash_profile
2014-11-30 06:46:11 -07:00
```
2014-11-30 20:32:14 -07:00
**That's all ~! You are ready to use asdf**
2014-11-30 06:46:11 -07:00
It clones the adsf-related dirs to your `$PATH` in `~/.bash_profile`. If you use a different shell, replace the filename appropriately.
2014-11-30 20:32:14 -07:00
## Manage sources
Sources are how asdf understands how to handle packages.
2014-11-30 06:46:11 -07:00
2014-11-30 20:32:14 -07:00
#### Add a package
```bash
# asdf source-add <name> <git-url>
2015-05-06 06:24:26 -07:00
asdf add-source erlang https://github.com/HashNuke/asdf-erlang.git
2014-11-30 06:46:11 -07:00
```
2014-11-30 20:32:14 -07:00
#### Remove a source
```bash
# asdf source-remove <name>
2015-05-06 06:24:26 -07:00
asdf remove-source erlang
2014-11-30 06:46:11 -07:00
```
2014-11-30 20:32:14 -07:00
#### Update sources
2014-11-30 06:46:11 -07:00
2014-11-30 20:32:14 -07:00
```bash
# To update all sources
2015-05-06 06:24:26 -07:00
asdf update-source --all
2014-11-30 06:46:11 -07:00
```
If you want to update a specific package, just say so.
2014-11-30 20:32:14 -07:00
```bash
# asdf source-update <name>
2015-05-06 06:24:26 -07:00
asdf update-source erlang
2014-11-30 06:46:11 -07:00
```
## Manage packages
2014-11-30 20:32:14 -07:00
```bash
2014-11-30 06:46:11 -07:00
# asdf install <name> <version>
asdf install erlang 17.3
# asdf uninstall <name> <version>
asdf uninstall erlang 17.3
```
#### Lists installed versions
2014-11-30 20:32:14 -07:00
```bash
2014-11-30 06:46:11 -07:00
# asdf list <name>
2014-11-30 20:32:14 -07:00
asdf list erlang
2014-11-30 06:46:11 -07:00
```
#### List all available versions
2014-11-30 20:32:14 -07:00
```bash
2014-11-30 06:46:11 -07:00
# asdf list-all <name>
asdf list-all erlang
```
#### Use a specific version of a package
2014-11-30 20:32:14 -07:00
```bash
# asdf use <name> <version>
2014-11-30 06:46:11 -07:00
asdf use erlang 17.3
```
It writes the version to the `.versions` file in the current working directory.
2014-10-19 09:18:48 -07:00
2014-11-30 03:18:49 -07:00
2014-11-30 06:46:11 -07:00
## The `.versions` file
Add a `.versions` file to your project dir and versions of those packages will be used.
2014-10-19 09:18:48 -07:00
```
2014-11-30 06:46:11 -07:00
elixir 1.0.2
2014-10-19 09:18:48 -07:00
erlang 17.3
```
2014-11-30 06:46:11 -07:00
## Credits
2014-10-19 09:18:48 -07:00
2014-12-20 07:05:56 -07:00
Me ([@HashNuke](http://github.com/HashNuke)), High-fever, cold, cough.
2014-10-19 09:18:48 -07:00
2014-11-30 06:46:11 -07:00
Copyright 2014 to the end of time
2014-12-20 07:05:56 -07:00
-------
Read the [ballad](https://github.com/HashNuke/asdf/blob/master/ballad-of-asdf.md).