#!/usr/bin/env ruby require File.expand_path(File.dirname(__FILE__) + "/../config/environment") puts "\n\n----- Retrospectiva extension manager CLI\n" if (['install', 'uninstall'].include?(ARGV[0]) && !ARGV[1].blank?) || ARGV[0] == 'list' manager = Retrospectiva::ExtensionManager force_migration = ARGV.include?('--force-db') case ARGV[0] when 'install' skip_migration = ARGV.include?('--skip-db') manager.install_extension(ARGV[1], skip_migration, force_migration) puts "\n ATTENTION: You need to restart the web-server to take over the changes\n" when 'uninstall' skip_migration = !ARGV.include?('--remove-db') manager.uninstall_extension(ARGV[1], skip_migration, force_migration) puts "\n ATTENTION: You need to restart your web-server to take over the changes\n" end puts "\n Available extensions:\n\n" manager.available_extensions.each do |ext| puts " [#{manager.installed_extensions.include?(ext) ? '+' : '-'}] #{ext}" end else script_name = File.basename($0) puts " List extensions: ruby #{$0} list Install extensions: ruby #{$0} install extension [options] Options: --skip-db: Do NOT make any extension relevant DB changes --force-db: Raise an error if DB oprations fail Uninstall extensions: ruby #{$0} uninstall extension [options] Options: --remove-db: Also remove extension relevant DB changes --force-db: Raise an error if DB oprations fail " end puts "\n\n----- www.retrospectiva.org\n\n"