Commit 65ca70e0e5a7dd5bca2f5a2707202fa561110737
1 parent
f280b3ca
Exists in
master
and in
21 other branches
noosfero-plugins: add install command
Enable users to explicitly install plugins' gems. Also, return error when install/dependencies fail.
Showing
7 changed files
with
20 additions
and
7 deletions
Show diff stats
.travis.yml
| @@ -37,9 +37,6 @@ cache: bundler | @@ -37,9 +37,6 @@ cache: bundler | ||
| 37 | 37 | ||
| 38 | before_script: | 38 | before_script: |
| 39 | - mkdir -p tmp/{pids,cache} log | 39 | - mkdir -p tmp/{pids,cache} log |
| 40 | -# workaround for plugins with Gemfile | ||
| 41 | - - perl -pi -e 's/--local --quiet/install --jobs=3 --retry=3 > \/dev\/null/' script/noosfero-plugins | ||
| 42 | - - perl -pi -e 's/rm -f \$gemfile/mv "\$gemfile".lock Gemfile.lock; rm -f \$gemfile/' script/noosfero-plugins | ||
| 43 | - script/noosfero-plugins disableall | 40 | - script/noosfero-plugins disableall |
| 44 | - bundle exec rake makemo &>/dev/null | 41 | - bundle exec rake makemo &>/dev/null |
| 45 | # database | 42 | # database |
| @@ -54,7 +51,7 @@ env: | @@ -54,7 +51,7 @@ env: | ||
| 54 | - TASK=test:integration | 51 | - TASK=test:integration |
| 55 | - TASK=cucumber | 52 | - TASK=cucumber |
| 56 | - TASK=selenium | 53 | - TASK=selenium |
| 57 | - - TASK=test:noosfero_plugins | 54 | + - TASK=test:noosfero_plugins BUNDLE_OPTS=install |
| 58 | 55 | ||
| 59 | script: | 56 | script: |
| 60 | - bundle exec rake $TASK | 57 | - bundle exec rake $TASK |
plugins/fb_app/install.rb
plugins/open_graph/install.rb
plugins/orders/install.rb
plugins/orders_cycle/install.rb
plugins/shopping_cart/install.rb
script/noosfero-plugins
| @@ -77,6 +77,12 @@ run(){ | @@ -77,6 +77,12 @@ run(){ | ||
| 77 | fi | 77 | fi |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | +_install(){ | ||
| 81 | + # export so that recursive enables for dependencies inherit this option too | ||
| 82 | + export BUNDLE_OPTS='install' | ||
| 83 | + _enable "$1" | ||
| 84 | +} | ||
| 85 | + | ||
| 80 | _enable(){ | 86 | _enable(){ |
| 81 | plugin="$1" | 87 | plugin="$1" |
| 82 | 88 | ||
| @@ -113,10 +119,13 @@ _enable(){ | @@ -113,10 +119,13 @@ _enable(){ | ||
| 113 | if [ -e $source/Gemfile ]; then | 119 | if [ -e $source/Gemfile ]; then |
| 114 | gemfile=$(mktemp --tmpdir=.) | 120 | gemfile=$(mktemp --tmpdir=.) |
| 115 | cat $NOOSFERO_DIR/Gemfile $source/Gemfile > $gemfile | 121 | cat $NOOSFERO_DIR/Gemfile $source/Gemfile > $gemfile |
| 116 | - if ! RUBYOPT='' BUNDLE_GEMFILE="$gemfile" bundle --local --quiet; then | 122 | + if [ -z "$BUNDLE_OPTS" ]; then BUNDLE_OPTS="--local"; fi |
| 123 | + if ! RUBYOPT='' BUNDLE_GEMFILE="$gemfile" bundle $BUNDLE_OPTS --quiet; then | ||
| 117 | dependencies_ok=false | 124 | dependencies_ok=false |
| 125 | + else | ||
| 126 | + mv "$gemfile".lock Gemfile.lock | ||
| 118 | fi | 127 | fi |
| 119 | - rm -f $gemfile $gemfile.lock | 128 | + rm -f $gemfile |
| 120 | fi | 129 | fi |
| 121 | if ! run $dependencies_file; then | 130 | if ! run $dependencies_file; then |
| 122 | dependencies_ok=false | 131 | dependencies_ok=false |
| @@ -134,9 +143,11 @@ _enable(){ | @@ -134,9 +143,11 @@ _enable(){ | ||
| 134 | elif [ "$installation_ok" = false ]; then | 143 | elif [ "$installation_ok" = false ]; then |
| 135 | echo "W: failed to install $plugin; not enabling" | 144 | echo "W: failed to install $plugin; not enabling" |
| 136 | echo | 145 | echo |
| 146 | + exit 1 | ||
| 137 | elif [ "$dependencies_ok" = false ]; then | 147 | elif [ "$dependencies_ok" = false ]; then |
| 138 | echo "W: failed to load dependencies for $plugin; not enabling" | 148 | echo "W: failed to load dependencies for $plugin; not enabling" |
| 139 | echo | 149 | echo |
| 150 | + exit 2 | ||
| 140 | fi | 151 | fi |
| 141 | fi | 152 | fi |
| 142 | } | 153 | } |
| @@ -245,7 +256,7 @@ case "$command" in | @@ -245,7 +256,7 @@ case "$command" in | ||
| 245 | fi | 256 | fi |
| 246 | _$command | 257 | _$command |
| 247 | ;; | 258 | ;; |
| 248 | - enable|disable|new) | 259 | + enable|install|disable|new) |
| 249 | for plugin in $@; do | 260 | for plugin in $@; do |
| 250 | _$command "$plugin" | 261 | _$command "$plugin" |
| 251 | done | 262 | done |