Merge branch 'master' into keep-source

This commit is contained in:
Akash Manohar J 2016-06-30 22:37:12 +05:30
commit 12c9a9c534
4 changed files with 45 additions and 19 deletions

View File

@ -36,6 +36,7 @@ mkdir -p ~/.config/fish/completions; and cp ~/.asdf/completions/asdf.fish ~/.con
> * **OS X**: Install these via homebrew `automake autoconf openssl libyaml readline libxslt libtool unixodbc` > * **OS X**: Install these via homebrew `automake autoconf openssl libyaml readline libxslt libtool unixodbc`
> * **Ubuntu**: `automake autoconf libreadline-dev libncurses-dev libssl-dev libyaml-dev libxslt-dev libffi-dev libtool unixodbc-dev` > * **Ubuntu**: `automake autoconf libreadline-dev libncurses-dev libssl-dev libyaml-dev libxslt-dev libffi-dev libtool unixodbc-dev`
> * **Fedora**: `automake autoconf readline-devel ncurses-devel openssl-devel libyaml-devel libxslt-devel libffi-devel libtool unixODBC-devel`
**That's all ~! You are ready to use asdf** **That's all ~! You are ready to use asdf**
@ -48,18 +49,19 @@ mkdir -p ~/.config/fish/completions; and cp ~/.asdf/completions/asdf.fish ~/.con
Plugins are how asdf understands how to handle different packages. Below is a list of plugins for languages. There is a [super-simple API](https://github.com/asdf-vm/asdf/blob/master/docs/creating-plugins.md) for supporting more languages. Plugins are how asdf understands how to handle different packages. Below is a list of plugins for languages. There is a [super-simple API](https://github.com/asdf-vm/asdf/blob/master/docs/creating-plugins.md) for supporting more languages.
| Language | Repository | | Language | Repository | CI Status
|-----------|-------------| |-----------|-------------|----------
| Elixir | [asdf-vm/asdf-elixir](https://github.com/asdf-vm/asdf-elixir) | Elixir | [asdf-vm/asdf-elixir](https://github.com/asdf-vm/asdf-elixir) | [![Build Status](https://travis-ci.org/asdf-vm/asdf-elixir.svg?branch=master)](https://travis-ci.org/asdf-vm/asdf-elixir)
| Erlang | [asdf-vm/asdf-erlang](https://github.com/asdf-vm/asdf-erlang) | Erlang | [asdf-vm/asdf-erlang](https://github.com/asdf-vm/asdf-erlang) | [![Build Status](https://travis-ci.org/asdf-vm/asdf-erlang.svg?branch=master)](https://travis-ci.org/asdf-vm/asdf-erlang)
| Go | [kennyp/asdf-golang](https://github.com/kennyp/asdf-golang) | Go | [kennyp/asdf-golang](https://github.com/kennyp/asdf-golang) | [![Build Status](https://travis-ci.org/kennyp/asdf-golang.svg?branch=master)](https://travis-ci.org/kennyp/asdf-golang)
| Lua | [Stratus3D/asdf-lua](https://github.com/Stratus3D/asdf-lua) | Lua | [Stratus3D/asdf-lua](https://github.com/Stratus3D/asdf-lua) | [![Build Status](https://travis-ci.org/Stratus3D/asdf-lua.svg?branch=master)](https://travis-ci.org/Stratus3D/asdf-lua)
| OpenResty | [smashedtoatoms/asdf-openresty](https://github.com/smashedtoatoms/asdf-openresty) | OpenResty | [smashedtoatoms/asdf-openresty](https://github.com/smashedtoatoms/asdf-openresty) | [![Build Status](https://travis-ci.org/smashedtoatoms/asdf-openresty.svg?branch=master)](https://travis-ci.org/smashedtoatoms/asdf-openresty)
| Node.js | [asdf-vm/asdf-nodejs](https://github.com/asdf-vm/asdf-nodejs) | Node.js | [asdf-vm/asdf-nodejs](https://github.com/asdf-vm/asdf-nodejs) | [![Build Status](https://travis-ci.org/asdf-vm/asdf-nodejs.svg?branch=master)](https://travis-ci.org/asdf-vm/asdf-nodejs)
| Postgres | [smashedtoatoms/asdf-postgres](https://github.com/smashedtoatoms/asdf-postgres) | Postgres | [smashedtoatoms/asdf-postgres](https://github.com/smashedtoatoms/asdf-postgres) | [![Build Status](https://travis-ci.org/smashedtoatoms/asdf-postgres.svg?branch=master)](https://travis-ci.org/smashedtoatoms/asdf-postgres)
| Redis | [smashedtoatoms/asdf-redis](https://github.com/smashedtoatoms/asdf-redis) | Python | [tuvistavie/asdf-python](https://github.com/tuvistavie/asdf-python) | [![Build Status](https://travis-ci.org/tuvistavie/asdf-python.svg?branch=master)](https://travis-ci.org/tuvistavie/asdf-python)
| Riak | [smashedtoatoms/asdf-riak](https://github.com/smashedtoatoms/asdf-riak) | Redis | [smashedtoatoms/asdf-redis](https://github.com/smashedtoatoms/asdf-redis) | [![Build Status](https://travis-ci.org/smashedtoatoms/asdf-redis.svg?branch=master)](https://travis-ci.org/smashedtoatoms/asdf-redis)
| Ruby | [asdf-vm/asdf-ruby](https://github.com/asdf-vm/asdf-ruby) | Riak | [smashedtoatoms/asdf-riak](https://github.com/smashedtoatoms/asdf-riak) | [![Build Status](https://travis-ci.org/smashedtoatoms/asdf-riak.svg?branch=master)](https://travis-ci.org/smashedtoatoms/asdf-riak)
| Ruby | [asdf-vm/asdf-ruby](https://github.com/asdf-vm/asdf-ruby) | [![Build Status](https://travis-ci.org/asdf-vm/asdf-ruby.svg?branch=master)](https://travis-ci.org/asdf-vm/asdf-ruby)
##### Add a plugin ##### Add a plugin

View File

@ -11,6 +11,6 @@ export PATH="${asdf_dir}/bin:${asdf_dir}/shims:$PATH"
if [ -n "$ZSH_VERSION" ]; then if [ -n "$ZSH_VERSION" ]; then
fpath=(${asdf_dir}/completions $fpath) fpath=(${asdf_dir}/completions $fpath)
autoload -U compinit autoload -U bashcompinit
compinit bashcompinit
fi fi

View File

@ -68,13 +68,14 @@ This must be used wisely. For now AFAIK, it's only being used in the Elixir plug
You can use it as follows You can use it as follows
```sh ```sh
asdf plugin-test <plugin-name> <plugin-url> asdf plugin-test <plugin-name> <plugin-url> [test-command]
``` ```
So for example to test the Elixir plugin, we would run The two first arguments are required. A command can also be passed to check it runs correctly.
For example to test the NodeJS plugin, we could run
```sh ```sh
asdf plugin-test elixir https://github.com/asdf-vm/asdf-elixir.git asdf plugin-test nodejs https://github.com/asdf-vm/asdf-nodejs.git 'node --version'
``` ```
We strongly recommend you test your plugin on TravisCI, to make sure it works We strongly recommend you test your plugin on TravisCI, to make sure it works
@ -84,7 +85,7 @@ Here is a sample `.travis.yml` file, customize it to your needs
```yaml ```yaml
language: c language: c
script: asdf plugin-test elixir https://github.com/asdf-vm/asdf-elixir.git script: asdf plugin-test nodejs https://github.com/asdf-vm/asdf-nodejs.git 'node --version'
before_script: before_script:
- git clone https://github.com/asdf-vm/asdf.git asdf - git clone https://github.com/asdf-vm/asdf.git asdf
- . asdf/asdf.sh - . asdf/asdf.sh

View File

@ -6,9 +6,11 @@ fail_test() {
plugin_test_command() { plugin_test_command() {
export ASDF_DIR=$(mktemp -dt asdf.XXXX) export ASDF_DIR=$(mktemp -dt asdf.XXXX)
git clone https://github.com/asdf-vm/asdf.git $ASDF_DIR
local plugin_name=$1 local plugin_name=$1
local plugin_url=$2 local plugin_url=$2
local plugin_command="${@:3}"
if [ -z "$plugin_name" -o -z "$plugin_url" ]; then if [ -z "$plugin_name" -o -z "$plugin_url" ]; then
fail_test "please provide a plugin name and url" fail_test "please provide a plugin name and url"
@ -33,11 +35,32 @@ plugin_test_command() {
fail_test "list-all did not return any version" fail_test "list-all did not return any version"
fi fi
(asdf install $plugin_name ${versions[0]}) latest_version=${versions[${#versions[@]} - 1]}
(asdf install $plugin_name $latest_version)
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
fail_test "install exited with an error" fail_test "install exited with an error"
fi fi
cd $ASDF_DIR
(asdf local $plugin_name $latest_version)
if [ $? -ne 0 ]; then
fail_test "install did not add the requested version"
fi
(asdf reshim $plugin_name)
if [ $? -ne 0 ]; then
fail_test "could not reshim plugin"
fi
if [ -n "$plugin_command" ]; then
(PATH="$ASDF_DIR/bin":"$ASDF_DIR/shims":$PATH eval "$plugin_command")
exit_code=$?
if [ $exit_code -ne 0 ]; then
fail_test "$plugin_command failed with exit code $?"
fi
fi
rm -rf $ASDF_DIR rm -rf $ASDF_DIR
} }