d: composite documents (.ssm), extract insert files list
[software/sisu] / qi
diff --git a/qi b/qi
index f5711eaf1a186d8673f4cb141d0f747e7b9409f2..2d8d878b6a955c58defb2437a07985279cbd29ce 100755 (executable)
--- a/qi
+++ b/qi
@@ -1,49 +1,33 @@
 #!/usr/bin/env ruby
 =begin
- Common Rakefile, Rantfile installer for SiSU
-   softlink Rakefile and Rantfile to this file
 
- * Homepage: <http://www.jus.uio.no/sisu/SiSU>
-             <http://search.sisudoc.org>
- * Download: <http://www.jus.uio.no/sisu/download>
-
- Copyright (C) 2007 Ralph Amissah
-
- * License: LGPL - GNU Lesser General Public License
-     [same license as Rant provided within the Rant package]
+**  Description: 
 
- * Ralph Amissah <ralph@amissah.com>
-   Ralph Amissah <ralph.amissah@gmail.com>
-
- Rake is a Ruby build program by Jim Weirich
- * Rake may be downloaded and installed from:
-     <http://rake.rubyforge.org/>
+**  Homepage: <http://www.jus.uio.no/sisu/SiSU>
+             <http://search.sisudoc.org>
+**  Download: <http://www.jus.uio.no/sisu/download>
 
- Rant is a Ruby build program by Stefan Lang
- * Rant may be downloaded and installed from:
-     <http://make.rubyforge.org/>
+**  Copyright: (C) 2007 - 2015 Ralph Amissah
 
- Notes on use:
-   [if rake is preferred and installed]
-     rake -T
-   [if rant is preferred and installed]
-     rant -T
+**  License: 
 
- SiSU can also be Setup/Installation using:
- * Minero Aoki's setup.rb, provided along with SiSU, or
+**  Ralph Amissah <ralph@amissah.com>
+  Ralph Amissah <ralph.amissah@gmail.com>
 
 =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
+begin
+  require './setup/sisu_version'   # ./setup/sisu_version.rb
+    include SiSUversion
+rescue LoadError
+  puts 'this does not appear to be a SiSU development directory'
+  exit
+end
 require_relative 'setup/qi_libs'        # setup/qi_libs.rb
 require 'find'
 require 'fileutils'
@@ -54,7 +38,7 @@ require 'yaml'
 module SiSUconf
   class Configure < Thor
     class_option :verbose, :type => :boolean
-    desc 'setup --all --bin --lib --conf --data --alt',
+    desc 'setup --all --bin --lib --conf --data --alt --dryrun',
       'setup sisu'
     options \
       :all => :boolean,
@@ -65,7 +49,8 @@ module SiSUconf
       :share => :boolean,
       :man => :boolean,
       :vim => :boolean,
-      :alt => :boolean
+      :alt => :boolean,
+      :dryrun => :boolean
     def setup
       unless options.length >= 1 \
       and not (options[:bin] \
@@ -77,72 +62,73 @@ module SiSUconf
       or options[:vim])
         puts 'setup --all --bin --lib --conf --data --share --man --vim'
       end
+      act=(options[:dryrun]) ? (:dryrun) : (:action)
       if not options[:alt]
         if options[:all] \
         or options[:bin]
           exclude_files=['sisugem']
-          Install.setup_find_create('bin',Project_details.dir.bin,exclude_files) \
+          Install.setup_find_create('bin',Project_details.dir.bin,exclude_files,act)  \
             if File.directory?('bin')
         end
         if options[:all] \
         or options[:lib]
-          Install.setup_find_create('lib',Project_details.dir.lib) \
+          Install.setup_find_create('lib',Project_details.dir.lib,act) \
             if File.directory?('lib')
         end
         if options[:all] \
         or options[:conf]
-          Install.setup_find_create('conf',Project_details.dir.conf) \
+          Install.setup_find_create('conf',Project_details.dir.conf,act) \
             if File.directory?('conf')
         end
         if options[:all] \
         or options[:data]
-          Install.setup_find_create('data',Project_details.dir.data) \
+          Install.setup_find_create('data',Project_details.dir.data,act) \
             if File.directory?('data')
         end
         if options[:all] \
         or options[:share]
-          Install.setup_find_create('data/sisu',Project_details.dir.share) \
+          Install.setup_find_create('data/sisu',Project_details.dir.share,act) \
             if File.directory?('data/sisu')
         end
         if options[:all] \
         or options[:man]
-          Install.setup_find_create('man',Project_details.dir.man) \
+          Install.setup_find_create('man',Project_details.dir.man,act) \
             if File.directory?('man')
         end
         if options[:all] \
         or options[:vim]
-          Install.setup_find_create('data/vim',Project_details.dir.vim) \
+          Install.setup_find_create('data/vim',Project_details.dir.vim,act) \
             if File.directory?('data/vim')
         end
       else
         if options[:all] \
         or options[:bin]
-          Install.setup_find_cp_r('bin',Project_details.dir.bin) \
+          Install.setup_find_cp_r('bin',Project_details.dir.bin,act) \
             if File.directory?('bin')
         end
         if options[:all] \
         or options[:bin]
-          Install.setup_find_cp_r('lib',Project_details.dir.lib) \
+          Install.setup_find_cp_r('lib',Project_details.dir.lib,act) \
             if File.directory?('lib')
         end
         if options[:all] \
         or options[:conf]
-          Install.setup_find_cp_r('conf',Project_details.dir.conf) \
+          Install.setup_find_cp_r('conf',Project_details.dir.conf,act) \
             if File.directory?('conf')
         end
         if options[:all] \
         or options[:data]
-          Install.setup_find_cp_r('data',Project_details.dir.data) \
+          Install.setup_find_cp_r('data',Project_details.dir.data,act) \
             if File.directory?('data')
         end
         if options[:all] \
         or options[:share]
-          Install.setup_find_cp_r('data/sisu',Project_details.dir.share) \
+          Install.setup_find_cp_r('data/sisu',Project_details.dir.share,act) \
             if File.directory?('data/sisu') #
         end
         if options[:all] \
         or options[:man]
-          Install.setup_find_cp_r('man',Project_details.dir.man) \
+          Install.setup_find_cp_r('man',Project_details.dir.man,act) \
             if File.directory?('man')
         end
         #if options[:all] \
@@ -209,17 +195,26 @@ module SiSUconf
     desc 'pkg',
       'package maintenance tasks, of no general interest (maintainer specific for package maintainer\'s convenience)'
     options \
-      :update_version=> :boolean,
+      :open_version=> :boolean,
+      :version_and_tag_for_release=> :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
-        puts "\n" + Version_info::Update.changelog_header_stable
-        puts "\n" + Version_info::Update.changelog_header_unstable
+      if options[:open_version]
+        Version_info::Update.update_stable(:pre_release)
+        Version_info::Update.update_unstable(:pre_release)
+        Version_info::Update.changelog_header_stable_pre_release
+        Version_info::Update.changelog_header_unstable_pre_release
+        Version_info::Update.changelog_header_commit(:pre_release)
+      end
+      if options[:version_and_tag_for_release]
+        Version_info::Update.update_stable(:release)
+        Version_info::Update.update_unstable(:release)
+        Version_info::Update.changelog_header_stable
+        Version_info::Update.changelog_header_unstable
+        Version_info::Update.changelog_header_commit_tag_upstream(:release)
       end
       if options.length == 0
         system("#{$called_as} help pkg")