#!/usr/bin/env ruby #-- # Copyright (C) 2007 Dimitrij Denissenko # Please read LICENSE document for more information. #++ require File.expand_path(File.dirname(__FILE__) + "/../config/environment") puts "\n\n----- Retrospectiva extension manager CLI\n" if (['install', 'uninstall', 'checkout'].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" when 'checkout' externals = !ARGV.include?('--no-externals') puts "\n Checking out extension from #{ARGV[1]}\n" result = manager.checkout_extension(ARGV[1], externals) puts "\n WARNING: #{result}\n" if result 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"