From 7248e7c48415e638813975fd9fc8fb409f27c00a Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 29 Aug 2014 19:28:23 -0400 Subject: qi, start using ruby-thor (for rake like tasks) --- qi | 234 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100755 qi (limited to 'qi') diff --git a/qi b/qi new file mode 100755 index 00000000..27516a67 --- /dev/null +++ b/qi @@ -0,0 +1,234 @@ +#!/usr/bin/env ruby +=begin + Common Rakefile, Rantfile installer for SiSU + softlink Rakefile and Rantfile to this file + + * Homepage: + + * Download: + + Copyright (C) 2007 Ralph Amissah + + * License: LGPL - GNU Lesser General Public License + [same license as Rant provided within the Rant package] + + * Ralph Amissah + Ralph Amissah + + Rake is a Ruby build program by Jim Weirich + * Rake may be downloaded and installed from: + + + Rant is a Ruby build program by Stefan Lang + * Rant may be downloaded and installed from: + + + Notes on use: + [if rake is preferred and installed] + rake -T + [if rant is preferred and installed] + rant -T + + SiSU can also be Setup/Installation using: + * Minero Aoki's setup.rb, provided along with SiSU, or + +=end +#%% produce a makefile suitable for the target platform +#require 'mkmf' +#create_makefile("sisu") +#% manual settings, edit/update as required (note current default settings are obtained from sisu version yml file) +begin + require 'thor' +rescue LoadError + puts 'thor (package ruby-thor) not found' +end +require_relative 'setup/sisu_version' # setup/sisu_version.rb + include SiSUversion +require_relative 'setup/qi_libs' # setup/qi_libs.rb +require 'find' +require 'fileutils' + include FileUtils +require 'pathname' +require 'rbconfig.rb' +require 'yaml' +module SiSUconf + class Configure < Thor + class_option :verbose, :type => :boolean + desc 'setup --all --bin --lib --conf --data --alt', + 'setup sisu' + options \ + :all => :boolean, + :bin => :boolean, + :lib => :boolean, + :conf => :boolean, + :data => :boolean, + :share => :boolean, + :man => :boolean, + :vim => :boolean, + :alt => :boolean + def setup + unless options.length >= 1 \ + and not (options[:bin] \ + or options[:lib] \ + or options[:conf] \ + or options[:data] \ + or options[:share] \ + or options[:man] \ + or options[:vim]) + puts 'setup --all --bin --lib --conf --data --share --man --vim' + end + if not options[:alt] + if options[:all] \ + or options[:bin] + exclude_files=['sisugem'] + Install.setup_find_create('bin',Project_details.dir.bin,exclude_files) \ + if File.directory?('bin') + end + if options[:all] \ + or options[:lib] + Install.setup_find_create('lib',Project_details.dir.lib) \ + if File.directory?('lib') + end + if options[:all] \ + or options[:conf] + Install.setup_find_create('conf',Project_details.dir.conf) \ + if File.directory?('conf') + end + if options[:all] \ + or options[:data] + Install.setup_find_create('data',Project_details.dir.data) \ + if File.directory?('data') + end + if options[:all] \ + or options[:share] + Install.setup_find_create('data/sisu',Project_details.dir.share) \ + if File.directory?('data/sisu') + end + if options[:all] \ + or options[:man] + Install.setup_find_create('man',Project_details.dir.man) \ + if File.directory?('man') + end + if options[:all] \ + or options[:vim] + Install.setup_find_create('data/vim',Project_details.dir.vim) \ + if File.directory?('data/vim') + end + else + if options[:all] \ + or options[:bin] + Install.setup_find_cp_r('bin',Project_details.dir.bin) \ + if File.directory?('bin') + end + if options[:all] \ + or options[:bin] + Install.setup_find_cp_r('lib',Project_details.dir.lib) \ + if File.directory?('lib') + end + if options[:all] \ + or options[:conf] + Install.setup_find_cp_r('conf',Project_details.dir.conf) \ + if File.directory?('conf') + end + if options[:all] \ + or options[:data] + Install.setup_find_cp_r('data',Project_details.dir.data) \ + if File.directory?('data') + end + if options[:all] \ + or options[:share] + Install.setup_find_cp_r('data/sisu',Project_details.dir.share) \ + if File.directory?('data/sisu') # + end + if options[:all] \ + or options[:man] + Install.setup_find_cp_r('man',Project_details.dir.man) \ + if File.directory?('man') + end + #if options[:all] \ + #or options[:vim] + # Install.setup_find_cp_r('data/vim',"#{Project_details.dir.data}/vim") \ + # if File.directory?('data/vim') + #end + end + end + desc 'gem --create --build --install --stable --unstable', + 'gem create build and install' + options \ + :stable => :boolean, + :unstable => :boolean, + :create => :boolean, + :build => :boolean, + :install => :boolean + def gem + if options[:unstable] + if options[:create] + Gemspecs::Current.create_unstable + #Gemspecs::Next.create_unstable + puts 'created gemspec, version: unstable' \ + if options[:verbose] + end + if options[:build] + Gemspecs::Current.build_unstable + #Gemspecs::Next.build_unstable + puts 'built gem, version: unstable' \ + if options[:verbose] + end + if options[:install] + Gemspecs::Current.install_unstable + #Gemspecs::Next.install_unstable + puts 'installed gem, version: unstable' \ + if options[:verbose] + end + end + if options[:stable] \ + or not options[:unstable] + if options[:create] + Gemspecs::Current.create_stable + #Gemspecs::Current.create_unstable + puts 'created gemspec, version: stable' \ + if options[:verbose] + end + if options[:build] + Gemspecs::Current.build_stable + #Gemspecs::Next.build_stable + puts 'built gem, version: stable' \ + if options[:verbose] + end + if options[:install] + Gemspecs::Current.install_stable + #Gemspecs::Next.install_stable + puts 'installed gem, version: stable' \ + if options[:verbose] + end + end + if options.length < 2 + system("#{$called_as} help gem") + end + end + desc 'pkg', + 'package maintenance tasks, of no general interest (maintainer specific for package maintainer\'s convenience)' + options \ + :update_version=> :boolean, + :tip => :boolean + def pkg + if options[:tip] + Package.sequence + end + if options[:update_version] + Version_info::Update.update_stable + Version_info::Update.update_unstable + end + if options.length == 0 + system("#{$called_as} help pkg") + system("#{$called_as} pkg --tip") + end + end + end +end +begin + $called_as,$argv=$0,$* + SiSUconf::Configure.start(ARGV) +rescue +end +__END__ -- cgit v1.2.3