Commit 46f264fa408a93242327e040e6797a986faa7901

Authored by Antonio Terceiro
1 parent a4fefc0c

noosfero-plugins: support out-of-tree plugins

Installing out-of-tree plugins with

  $ ./script/noosfero-plugins enable /path/to/plugin

will just work. (Manually creating the symlinks should already work, but
what the hell)

Also, install relative symlinks to allow relocation of the Noosfero
tree.
Showing 1 changed file with 17 additions and 2 deletions   Show diff stats
script/noosfero-plugins
@@ -79,7 +79,22 @@ run(){ @@ -79,7 +79,22 @@ run(){
79 79
80 _enable(){ 80 _enable(){
81 plugin="$1" 81 plugin="$1"
82 - source="$available_plugins_dir/$plugin" 82 +
  83 + if [ -d "$available_plugins_dir/$plugin" ]; then
  84 + source="$available_plugins_dir/$plugin"
  85 + linksource="../../plugins/$plugin"
  86 + else
  87 + if [ ! -d "$plugin" ]; then
  88 + echo "E: $plugin not found (needs to be an existing directory)"
  89 + return
  90 + fi
  91 +
  92 + # out-of-tree plugins
  93 + source="$plugin"
  94 + linksource="$source"
  95 + plugin=$(basename "$plugin")
  96 + fi
  97 +
83 target="$enabled_plugins_dir/$plugin" 98 target="$enabled_plugins_dir/$plugin"
84 base="$base_plugins_dir/$plugin" 99 base="$base_plugins_dir/$plugin"
85 run "$source/before_enable.rb" 100 run "$source/before_enable.rb"
@@ -110,7 +125,7 @@ _enable(){ @@ -110,7 +125,7 @@ _enable(){
110 fi 125 fi
111 fi 126 fi
112 if [ "$installation_ok" = true ] && [ "$dependencies_ok" = true ]; then 127 if [ "$installation_ok" = true ] && [ "$dependencies_ok" = true ]; then
113 - ln -s "$source" "$target" 128 + ln -s "$linksource" "$target"
114 plugins_public_dir="$NOOSFERO_DIR/public/plugins" 129 plugins_public_dir="$NOOSFERO_DIR/public/plugins"
115 plugins_features_dir="$NOOSFERO_DIR/features/plugins" 130 plugins_features_dir="$NOOSFERO_DIR/features/plugins"
116 test -d "$target/public" && ln -s "$target/public" "$plugins_public_dir/$plugin" 131 test -d "$target/public" && ln -s "$target/public" "$plugins_public_dir/$plugin"