diff options
| author | Ralph Amissah <ralph@amissah.com> | 2007-07-27 21:08:44 +0100 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2007-07-27 21:08:44 +0100 | 
| commit | 01777d7a480f427254f4003205101c60129e865a (patch) | |
| tree | eed030ea0e00f7b5ed6b833dbd1814474ea906aa | |
| parent | rant installer adjustments (diff) | |
maintain rinstall as a common rant (Rantfile), rake (Rakefile)
| -rw-r--r-- | CHANGELOG | 4 | ||||
| l--------- | Rakefile | 1 | ||||
| l---------[-rw-r--r--] | Rantfile | 444 | ||||
| -rw-r--r-- | rinstall | 438 | 
4 files changed, 443 insertions, 444 deletions
| @@ -20,7 +20,9 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_0.55.6.orig.tar.gz      Dublin Core, XML output available (-O), decide use later (filenames, output      dir etc.) -  * rant installer, minor adjustments +  * rinstall as both a rant and rake installer for sisu +   * Rakefile softlink to rinstall +   * Rantfile softlink to rinstall    * debian vim      * moved installation of syntax and ftplugin back to vim/addons diff --git a/Rakefile b/Rakefile new file mode 120000 index 00000000..0bae78d7 --- /dev/null +++ b/Rakefile @@ -0,0 +1 @@ +rinstall
\ No newline at end of file @@ -1,443 +1 @@ -#!/usr/bin/env ruby -raise 'Please, use ruby1.8.4 or later.' if RUBY_VERSION < '1.8.4' -=begin - Rantfile installer for SiSU - * 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] - - * Ralph Amissah <ralph@amissah.com> -   Ralph Amissah <ralph.amissah@gmail.com> - - Rant is a Ruby 'ant' by Stefan Lang - * Rant may be downloaded and installed from: -     http://make.rubyforge.org/ - - Notes on use: -     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") -require 'find' -require 'fileutils' -#require 'ftools' -require 'rbconfig.rb' -require 'yaml' -include FileUtils -class Project_details -  def name -    'SiSU' -  end -  def rant -    "Rantfile for the installation/setup of #{name}" -  end -  def platform_notice -    "[#{name} is for the Linux/Unix Platforms]" -  end -  def dir_proj -    'sisu' -  end -  def env -    Config::CONFIG -  end -  def host -    env['host'] -  end -  def dir_arch -    env['archdir'] -  end -  def dir_sitearch -    env['sitearchdir'] -  end -  def dir_bin -    env['bindir'] -  end -  def dir_lib -    env['sitelibdir'] -  end -  def dir_data -    env['datadir'] -  end -  def dir_share -    "#{env['datadir']}/sisu" -  end -  def dir_conf -    env['sysconfdir'] -  end -  def dir_man -    env['mandir'] -  end -  def dir_vim -    "#{env['datadir']}/sisu/vim" -  end -  def dir_out -    "#{env['localstatedir']}/#{dir_proj}" -  end -  def dir_rubylib -    env['LIBRUBYARG_SHARED'] -  end -  def dir_pwd -    Dir.pwd #ENV['PWD'] -  end -  def version -    stamp={} -    v="#{dir_pwd}/conf/sisu/version.yml" -    version=if File.exist?(v) -      stamp=YAML::load(File::open(v)) -      stamp[:version] -    else '' -    end -  end -end -@p=Project_details.new -def answer?(ask) -  resp='redo' -  print ask + " ['yes', 'no' or 'quit']: " -  resp=File.new('/dev/tty').gets.strip -  #resp=gets.strip -  ans=if resp == 'yes'; true -  elsif resp == 'no'; false -  elsif resp =~/^quit|exit$/; exit -  else puts "[please type: 'yes', 'no' or 'quit']" -    answer?(ask) -  end -end -def default_notice -    ans= %{#{@p.rant} -  Information on alternative actions is available using: -    "rant help" or "rant -T" -  Default action selected - "install and to setup #{@p.name}" proceed? } -    resp=answer?(ans) -    exit unless resp -end -def get_username -  gets.strip -end -def chmod_file(place) -  if place =~/\/bin/; File.chmod(0755,place) -  else                File.chmod(0644,place) -  end -end -def chmod_util(place) -  if place =~/\/bin/; chmod(0755,place) -  else                chmod(0644,place) -  end -end -                                                           #%% using a directory and its mapping -def setup_find_create(dir_get,dir_put)                     #primary, -  Find.find("#{@p.dir_pwd}/#{dir_get}") do |f| -    stub=f.scan(/#{@p.dir_pwd}\/#{dir_get}\/(\S+)/).join -    place="#{dir_put}/#{stub}" -    action=case -    when File.file?(f) -      cp(f,place) -      chmod_file(place) -      "->  #{dir_put}/" -    when File.directory?(f) -      FileUtils.mkpath(place) unless FileTest.directory?(place) -      "./#{dir_get}/" -    else '?' -    end -    puts "#{action}#{stub}" -  end -end -def setup_find_cp_r(dir_get,dir_put)                       #secondary, using recursive copy -  Find.find("#{@p.dir_pwd}/#{dir_get}") do |f| -    stub=f.scan(/#{@p.dir_pwd}\/#{dir_get}\/(\S+)/).join -    place="#{dir_put}/#{stub}" -    case -    when File.file?(f) -      cp_r(f,place) -      chmod_util(place) -    when File.directory?(f) -      mkdir(place) unless FileTest.directory?(place) -    end -  end -end -def rant_system_info -  puts <<WOK -  #{@p.platform_notice} - -  Host -    host:             #{@p.host} -    arch:             #{@p.dir_arch} -    sitearch:         #{@p.dir_sitearch} - -  Directories for installation -    bin:                                          #{@p.dir_bin} -    lib (site-ruby):                              #{@p.dir_lib}/#{@p.dir_proj}/v* -    conf [etc]:                                   #{@p.dir_conf}/#{@p.dir_proj} -    data (odf, shared images):                    #{@p.dir_share} -    vim  (vim syntax, highlighting, ftplugin):    #{@p.dir_data}/sisu/vim -    data (README, version_manifest):              #{@p.dir_data}/doc/#{@p.dir_proj} -    man (manual pages):                           #{@p.dir_man} -    output:                                       #{@p.dir_out} -      processing:                                 #{@p.dir_out}/processing -      www:                                        #{@p.dir_out}/www - -    rubylib:          #{@p.dir_rubylib} - -WOK -end -def rant_project_help -  puts <<WOK - -#{@p.name} -  #{@p.rant} -  #{@p.platform_notice} - -Commands quick start list - -  #{@p.name} Rant Help:          (This Rantfile uses the same directory structure as setup.rb) -    rant -T                # a task list, (generated by Rant) for more complete and up to date help -    rant system            # system info used - -  Quick start install and remove project #{@p.name} -   as root: -    rant                   # install #{@p.name} - -    rant setup             # install #{@p.name} (without additonal configuration and generating of test file) - -    rant reinstall         # reinstall #{@p.name} - -    rant remove            # clobber/remove #{@p.name}, current version: #{@p.version} -    rant remove_package    # clobber/remove #{@p.name}, all versions - -For a more detailed and up to date list of command options use - -  rant -T - -WOK -end -def rant_tasks -  sys('rant -T') -end -                                                           #%% tasks -desc "rant (as root type 'rant' for default action)" -task :default => [:default_notice,:project] -#task :default => [:help,:notice,:project] -desc "Setup/Install #{@p.name} and try generate a file" -task :project=> [:setup_bin,:setup_lib,:setup_conf,:setup_share,:setup_data,:setup_man,:setup_vim,:post_install_note] -desc "Setup/Install #{@p.name}" -task :setup=> [:setup_bin, :setup_lib,:setup_conf,:setup_share,:setup_data] #, :help] -desc "Setup/Install #{@p.name}: bin, lib and conf (no data)" -task :setup_base=> [:setup_bin,:setup_lib,:setup_conf,:setup_share,:setup_man,:setup_vim] -desc "Setup/Install #{@p.name} bin, lib and conf (no data and no attempt to do postinstall setup)" -task :base=> [:setup_base] -if File.directory?('bin')                                       #bin -  desc "Setup #{@p.name} bin only, synonym :bin" -  task :setup_bin => [:setup_bin] -  task :bin => [:setup_bin] -end -if File.directory?('lib')                                       #lib -  desc "Setup #{@p.name} lib only, synonym :lib" -  task :setup_lib => [:setup_lib] -  task :lib => [:setup_lib] -end -if File.directory?('conf')                                      #conf or etc -  desc "Setup #{@p.name} conf only, synonyms :conf & :etc" -  task :setup_conf => [:setup_conf] -  task :conf => [:setup_conf] -  task :setup_etc => [:setup_conf] -  task :etc => [:setup_conf] -end -if File.directory?('data')                                      #data -  desc "Setup #{@p.name} data only, synonyms :data & :examples" -  task :setup_data => [:setup_data] -  task :data => [:setup_data] -  task :setup_examples => [:setup_data] -  task :examples => [:setup_data] -end -if File.directory?('data/sisu')                                      #share (odf shared-images) -  desc "Setup #{@p.name} shared data only (odf & shared images)" -  task :setup_share => [:setup_share] -  task :share => [:setup_share] -end -if File.directory?('man')                                  #man pages -  desc "Setup #{@p.name} man pages only, synonyms :man" -  task :setup_man => [:setup_man] -  task :man => [:setup_man] -end -if File.directory?('data/vim')                                  #man pages -  desc "Setup #{@p.name} vim config files only, synonyms :vim" -  task :setup_vim => [:setup_vim] -  task :vim => [:setup_vim] -end -desc "Setup/Install #{@p.name}: bin, lib, conf and data (no attempt to do postinstall setup)" -task :setup_only=> [:setup_bin,:setup_lib,:setup_conf,:setup_share,:setup_data,:help] -desc "Remove #{@p.name} (all versions)"                   #remove project -task :remove_package => [:remove_bin, :remove_lib, :remove_conf] -if File.directory?('bin')                                       #bin -  desc "Remove #{@p.name} bin only"                       #remove bin -  task :remove_bin => [:remove_bin] -end -if File.directory?('lib')                                       #lib -  desc "Remove #{@p.name} lib only"                       #remove lib -  task :remove_lib => [:remove_lib] -end -if File.directory?('conf')                                      #conf -  desc "Remove #{@p.name} conf only"                      #remove conf -  task :remove_conf => [:remove_conf] -end -#if File.directory?('data')                                      #data -#  desc "Remove #{@p.name} data only"                      #remove data -#  task :remove_data => [:remove_data] -#end -desc "Re-setup #{@p.name}, synonym :reinstall"            #resetup reinstall -task :resetup => [:remove, :setup] -task :reinstall => [:remove, :setup] -desc "Re-setup #{@p.name}: bin, lib, conf (ignore data), synonym :reinstall"  #partial reinstall -task :resetup_base => [:remove, :setup_base] -task :reinstall_base => [:remove, :setup_base] -if File.directory?('bin')                                       #bin -  desc "Re-setup #{@p.name} bin, synonym :reinstall" -  task :resetup_bin => [:remove_bin, :setup_bin] -  task :reinstall_bin => [:remove_bin, :setup_bin] -end -if File.directory?('lib')                                       #lib -  desc "Re-setup #{@p.name} lib, synonym :reinstall_lib" -  task :resetup_lib => [:remove_lib, :setup_lib] -  task :reinstall_lib => [:remove_lib, :setup_lib] -end -if File.directory?('conf')                                       #conf -  desc "Re-setup #{@p.name} conf, synonyms :reinstall_conf & :resetup_etc" -  task :resetup_conf => [:remove_conf, :setup_conf] -  task :reinstall_conf => [:remove_conf, :setup_conf] -  task :resetup_etc => [:remove_conf, :setup_conf] -  task :reinstall_etc => [:remove_conf, :setup_conf] -end -if File.directory?('data/sisu')                                       #share -  desc "Re-setup #{@p.name} shared data, (odf & images)" -  task :resetup_share => [:remove_share, :setup_share] -  task :reinstall_share => [:remove_share, :setup_share] -end -if File.directory?('man')                                    #man -  desc "Re-setup #{@p.name} man, synonym :reinstall_man" -  task :resetup_man => [:remove_man, :setup_man] -  task :reinstall_man => [:remove_man, :setup_man] -end -desc 'Setup Note' -task :setup_note => [:help] -desc "System information used by #{@p.name}" -task :system => [:system_info,:project_help,:post_install_note] -desc "show all system info available - parameters found" -task :system_param => [:system_param] -desc 'Help' -task :help => [:project_help,:system_info,:rant_tasks] -#desc "Setup/Install #{@p.name} (uses filelist)" -task :install => [:default_notice,:project] -task :install_bin => [:setup_bin] -desc '[make rant install file]' -task :create_rant_independent_task_file => [:rant_independence] -                                                           #%% setup/install tasks -task :rant_independence do                                 #notice -  resp='' -  while resp.length < 4 -    resp='sisu-install'                                     #default name install -    print %{#{@p.rant} -  Create a rant dependency independent file -  provide filename default name is "install" -    [Warning, will overwrite file of name provided -      provide name or "quit" to exit]: } -    exit if resp =~/^(?:n|quit|exit)$/ -  end -  remove='y' #remove='n' - if remove =~/y/ -   system("rant-import --force --auto #{resp}; -     chmod 755 #{resp} -   ") - else #puts "#{resp} not replaced" - end -end - -task :default_notice do                                    #notice -  default_notice -end -task :rant_default2 do                                     #secondary -  setup_find_cp_r('bin',@p.dir_bin) if File.directory?('bin') -  setup_find_cp_r('lib',@p.dir_lib) if File.directory?('lib') -  setup_find_cp_r('conf',@p.dir_conf) if File.directory?('conf') -  setup_find_cp_r('data/sisu',@p.dir_share) if File.directory?('data/sisu') # -  setup_find_cp_r('data',@p.dir_data) if File.directory?('data') -  setup_find_cp_r('data/vim',"#{@p.dir_data}/vim") if File.directory?('data/vim') -  setup_find_cp_r('man',@p.dir_man) if File.directory?('man') -end -task :setup_bin do                                         #bin -  setup_find_create('bin',@p.dir_bin) if File.directory?('bin') -end -task :setup_lib do                                         #lib -  setup_find_create('lib',@p.dir_lib) if File.directory?('lib') -end -task :setup_conf do                                        #conf -  setup_find_create('conf',@p.dir_conf) if File.directory?('conf') -end -task :setup_share do                                        #share -  setup_find_create('data/sisu',@p.dir_share) if File.directory?('data/sisu') -end -task :setup_data do                                        #data -  setup_find_create('data',@p.dir_data) if File.directory?('data') -end -task :setup_man do                                         #man -  setup_find_create('man',@p.dir_man) if File.directory?('man') #man pages -  setup_find_create('man.deb/man',@p.dir_man) if File.directory?('man.deb/man') #man pages -end -task :setup_vim do                                         #man -  setup_find_create('data/vim',@p.dir_vim) if File.directory?('data/vim') #man pages -end -                                                           #%% post install -                                                           #%% clobber/remove tasks -task :remove_bin do -  rm_r "#{@p.dir_bin}/#{@p.dir_proj}" if FileTest.file?("#{@p.dir_bin}/#{@p.dir_proj}") -end -task :remove_lib do -  rm_r "#{@p.dir_lib}/#{@p.dir_proj}" if FileTest.directory?("#{@p.dir_lib}/#{@p.dir_proj}") -end -task :remove_conf do -  rm_r "#{@p.dir_conf}/#{@p.dir_proj}" if FileTest.directory?("#{@p.dir_conf}/#{@p.dir_proj}") -end -task :remove_man do -  rm_r "#{@p.dir_man}/**/#{@p.dir_proj}" if FileTest.directory?("#{@p.dir_man}/man1/#{@p.dir_proj}") -end -task :remove_version do -  rm_r "#{@p.dir_bin}/#{@p.dir_proj}" if FileTest.file?("#{@p.dir_bin}/#{@p.dir_proj}") -  rm_r "#{@p.dir_lib}/#{@p.dir_proj}/#{@p.version}" if FileTest.directory?("#{@p.dir_lib}/#{@p.dir_proj}/#{@p.version}") -  rm_r "#{@p.dir_conf}/#{@p.dir_proj} if FileTest.directory?("#{@p.dir_conf}/#{@p.dir_proj}") -end -task :remove_package do -  rm_r "#{@p.dir_bin}/#{@p.dir_proj}" if FileTest.file?("#{@p.dir_bin}/#{@p.dir_proj}") -  rm_r "#{@p.dir_lib}/#{@p.dir_proj}" if FileTest.directory?("#{@p.dir_lib}/#{@p.dir_proj}") -  rm_r "#{@p.dir_conf}/#{@p.dir_proj}" if FileTest.directory?("#{@p.dir_conf}/#{@p.dir_proj}") -end -task :post_install_note do -  puts <<WOK - -  sisu markup samples are now packaged separately in sisu-markup-samples -    visit: -      http://www.jus.uio.no/sisu -    and: -      http://www.jus.uio.no/sisu/SiSU/download - -WOK -end -task :system_info do                                       #%% system info -  rant_system_info -end -task :system_param do -  @env.each {|c| puts c.inspect } -end -task :project_help do                                       #%% help -  rant_project_help -end -task :rant_tasks do                                       #%% help -  rant_tasks -end +rinstall
\ No newline at end of file diff --git a/rinstall b/rinstall new file mode 100644 index 00000000..3fd3147d --- /dev/null +++ b/rinstall @@ -0,0 +1,438 @@ +#!/usr/bin/env ruby +raise 'Please, use ruby1.8.4 or later.' if RUBY_VERSION < '1.8.4' +=begin + Rantfile installer for SiSU + * 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] + + * Ralph Amissah <ralph@amissah.com> +   Ralph Amissah <ralph.amissah@gmail.com> + + Rant is a Ruby 'ant' by Stefan Lang + * Rant may be downloaded and installed from: +     http://make.rubyforge.org/ + + Notes on use: +     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") +require 'find' +require 'fileutils' +#require 'ftools' +require 'rbconfig.rb' +require 'yaml' +include FileUtils +class Project_details +  def name +    'SiSU' +  end +  def rant +    "Rantfile for the installation/setup of #{name}" +  end +  def platform_notice +    "[#{name} is for the Linux/Unix Platforms]" +  end +  def dir_proj +    'sisu' +  end +  def env +    Config::CONFIG +  end +  def host +    env['host'] +  end +  def dir_arch +    env['archdir'] +  end +  def dir_sitearch +    env['sitearchdir'] +  end +  def dir_bin +    env['bindir'] +  end +  def dir_lib +    env['sitelibdir'] +  end +  def dir_data +    env['datadir'] +  end +  def dir_share +    "#{env['datadir']}/sisu" +  end +  def dir_conf +    env['sysconfdir'] +  end +  def dir_man +    env['mandir'] +  end +  def dir_vim +    "#{env['datadir']}/sisu/vim" +  end +  def dir_out +    "#{env['localstatedir']}/#{dir_proj}" +  end +  def dir_rubylib +    env['LIBRUBYARG_SHARED'] +  end +  def dir_pwd +    Dir.pwd #ENV['PWD'] +  end +  def version +    stamp={} +    v="#{dir_pwd}/conf/sisu/version.yml" +    version=if File.exist?(v) +      stamp=YAML::load(File::open(v)) +      stamp[:version] +    else '' +    end +  end +end +@p=Project_details.new +def answer?(ask) +  resp='redo' +  print ask + " ['yes', 'no' or 'quit']: " +  resp=File.new('/dev/tty').gets.strip +  #resp=gets.strip +  ans=if resp == 'yes'; true +  elsif resp == 'no'; false +  elsif resp =~/^quit|exit$/; exit +  else puts "[please type: 'yes', 'no' or 'quit']" +    answer?(ask) +  end +end +def default_notice +  ans= %{#{@p.rant} +  Information on alternative actions is available using: +    "rant help" or "rant -T" +  Default action selected - "install and to setup #{@p.name}" proceed? } +  resp=answer?(ans) +  exit unless resp +end +def get_username +  gets.strip +end +def chmod_file(place) +  if place =~/\/bin/; File.chmod(0755,place) +  else                File.chmod(0644,place) +  end +end +def chmod_util(place) +  if place =~/\/bin/; chmod(0755,place) +  else                chmod(0644,place) +  end +end +                                                           #%% using a directory and its mapping +def setup_find_create(dir_get,dir_put)                     #primary, +  Find.find("#{@p.dir_pwd}/#{dir_get}") do |f| +    stub=f.scan(/#{@p.dir_pwd}\/#{dir_get}\/(\S+)/).join +    place="#{dir_put}/#{stub}" +    action=case +    when File.file?(f) +      cp(f,place) +      chmod_file(place) +      "->  #{dir_put}/" +    when File.directory?(f) +      FileUtils.mkpath(place) unless FileTest.directory?(place) +      "./#{dir_get}/" +    else '?' +    end +    puts "#{action}#{stub}" +  end +end +def setup_find_cp_r(dir_get,dir_put)                       #secondary, using recursive copy +  Find.find("#{@p.dir_pwd}/#{dir_get}") do |f| +    stub=f.scan(/#{@p.dir_pwd}\/#{dir_get}\/(\S+)/).join +    place="#{dir_put}/#{stub}" +    case +    when File.file?(f) +      cp_r(f,place) +      chmod_util(place) +    when File.directory?(f) +      mkdir(place) unless FileTest.directory?(place) +    end +  end +end +def rant_system_info +  puts <<WOK +  #{@p.platform_notice} + +  Host +    host:             #{@p.host} +    arch:             #{@p.dir_arch} +    sitearch:         #{@p.dir_sitearch} + +  Directories for installation +    bin:                                          #{@p.dir_bin} +    lib (site-ruby):                              #{@p.dir_lib}/#{@p.dir_proj}/v* +    conf [etc]:                                   #{@p.dir_conf}/#{@p.dir_proj} +    data (odf, shared images):                    #{@p.dir_share} +    vim  (vim syntax, highlighting, ftplugin):    #{@p.dir_data}/sisu/vim +    data (README, version_manifest):              #{@p.dir_data}/doc/#{@p.dir_proj} +    man (manual pages):                           #{@p.dir_man} +    output:                                       #{@p.dir_out} +      processing:                                 #{@p.dir_out}/processing +      www:                                        #{@p.dir_out}/www + +    rubylib:          #{@p.dir_rubylib} + +WOK +end +def rant_project_help +  puts <<WOK + +#{@p.name} +  #{@p.rant} +  #{@p.platform_notice} + +Commands quick start list + +  #{@p.name} Rant Help:          (This Rantfile uses the same directory structure as setup.rb) +    rant -T                # a task list, (generated by Rant) for more complete and up to date help +    rant system            # system info used + +  Quick start install and remove project #{@p.name} +   as root: +    rant                   # install #{@p.name} + +    rant setup             # install #{@p.name} (without additonal configuration and generating of test file) + +    rant reinstall         # reinstall #{@p.name} + +    rant remove            # clobber/remove #{@p.name}, current version: #{@p.version} +    rant remove_package    # clobber/remove #{@p.name}, all versions + +For a more detailed and up to date list of command options use + +  rant -T + +WOK +end +def rant_tasks +  sys('rant -T') +end +                                                           #%% tasks +desc "rant (as root type 'rant' for default action)" +task :default => [:default_notice,:project] +#task :default => [:help,:notice,:project] +desc "Setup/Install #{@p.name} and try generate a file" +task :project=> [:setup_bin,:setup_lib,:setup_conf,:setup_share,:setup_data,:setup_man,:setup_vim,:post_install_note] +desc "Setup/Install #{@p.name}" +task :setup=> [:setup_bin, :setup_lib,:setup_conf,:setup_share,:setup_data] #, :help] +desc "Setup/Install #{@p.name}: bin, lib and conf (no data)" +task :setup_base=> [:setup_bin,:setup_lib,:setup_conf,:setup_share,:setup_man,:setup_vim] +desc "Setup/Install #{@p.name} bin, lib and conf (no data and no attempt to do postinstall setup)" +task :base=> [:setup_base] +if File.directory?('bin')                                       #bin +  desc "Setup #{@p.name} bin only, synonym :bin" +  task :bin => [:setup_bin] +end +if File.directory?('lib')                                       #lib +  desc "Setup #{@p.name} lib only, synonym :lib" +  task :lib => [:setup_lib] +end +if File.directory?('conf')                                      #conf or etc +  desc "Setup #{@p.name} conf only, synonyms :conf & :etc" +  task :conf => [:setup_conf] +  task :setup_etc => [:setup_conf] +  task :etc => [:setup_conf] +end +if File.directory?('data')                                      #data +  desc "Setup #{@p.name} data only, synonyms :data & :examples" +  task :data => [:setup_data] +  task :setup_examples => [:setup_data] +  task :examples => [:setup_data] +end +if File.directory?('data/sisu')                                      #share (odf shared-images) +  desc "Setup #{@p.name} shared data only (odf & shared images)" +  task :share => [:setup_share] +end +if File.directory?('man')                                  #man pages +  desc "Setup #{@p.name} man pages only, synonyms :man" +  task :man => [:setup_man] +end +if File.directory?('data/vim')                                  #man pages +  desc "Setup #{@p.name} vim config files only, synonyms :vim" +  task :setup_vim => [:setup_vim] +  task :vim => [:setup_vim] +end +desc "Setup/Install #{@p.name}: bin, lib, conf and data (no attempt to do postinstall setup)" +task :setup_only=> [:setup_bin,:setup_lib,:setup_conf,:setup_share,:setup_data,:help] +desc "Remove #{@p.name} (all versions)"                   #remove project +task :remove_package => [:remove_bin, :remove_lib, :remove_conf] +if File.directory?('bin')                                       #bin +  desc "Remove #{@p.name} bin only"                       #remove bin +  task :remove_bin => [:remove_bin] +end +if File.directory?('lib')                                       #lib +  desc "Remove #{@p.name} lib only"                       #remove lib +  task :remove_lib => [:remove_lib] +end +if File.directory?('conf')                                      #conf +  desc "Remove #{@p.name} conf only"                      #remove conf +  task :remove_conf => [:remove_conf] +end +#if File.directory?('data')                                      #data +#  desc "Remove #{@p.name} data only"                      #remove data +#  task :remove_data => [:remove_data] +#end +desc "Re-setup #{@p.name}, synonym :reinstall"            #resetup reinstall +task :resetup => [:remove, :setup] +task :reinstall => [:remove, :setup] +desc "Re-setup #{@p.name}: bin, lib, conf (ignore data), synonym :reinstall"  #partial reinstall +task :resetup_base => [:remove, :setup_base] +task :reinstall_base => [:remove, :setup_base] +if File.directory?('bin')                                       #bin +  desc "Re-setup #{@p.name} bin, synonym :reinstall" +  task :resetup_bin => [:remove_bin, :setup_bin] +  task :reinstall_bin => [:remove_bin, :setup_bin] +end +if File.directory?('lib')                                       #lib +  desc "Re-setup #{@p.name} lib, synonym :reinstall_lib" +  task :resetup_lib => [:remove_lib, :setup_lib] +  task :reinstall_lib => [:remove_lib, :setup_lib] +end +if File.directory?('conf')                                       #conf +  desc "Re-setup #{@p.name} conf, synonyms :reinstall_conf & :resetup_etc" +  task :resetup_conf => [:remove_conf, :setup_conf] +  task :reinstall_conf => [:remove_conf, :setup_conf] +  task :resetup_etc => [:remove_conf, :setup_conf] +  task :reinstall_etc => [:remove_conf, :setup_conf] +end +if File.directory?('data/sisu')                                       #share +  desc "Re-setup #{@p.name} shared data, (odf & images)" +  task :resetup_share => [:remove_share, :setup_share] +  task :reinstall_share => [:remove_share, :setup_share] +end +if File.directory?('man')                                    #man +  desc "Re-setup #{@p.name} man, synonym :reinstall_man" +  task :resetup_man => [:remove_man, :setup_man] +  task :reinstall_man => [:remove_man, :setup_man] +end +desc 'Setup Note' +task :setup_note => [:help] +desc "System information used by #{@p.name}" +task :system => [:system_info,:project_help,:post_install_note] +desc "show all system info available - parameters found" +task :system_param => [:system_param] +desc 'Help' +task :help => [:project_help,:system_info,:rant_tasks] +#desc "Setup/Install #{@p.name} (uses filelist)" +task :install => [:default_notice,:project] +task :install_bin => [:setup_bin] +desc '[make rant install file]' +task :create_rant_independent_task_file => [:rant_independence] +                                                           #%% setup/install tasks +task :rant_independence do                                 #notice +  resp='' +  while resp.length < 4 +    resp='sisu-install'                                     #default name install +    print %{#{@p.rant} +  Create a rant dependency independent file +  provide filename default name is "install" +    [Warning, will overwrite file of name provided +      provide name or "quit" to exit]: } +    exit if resp =~/^(?:n|quit|exit)$/ +  end +  remove='y' #remove='n' + if remove =~/y/ +   system("rant-import --force --auto #{resp}; +     chmod 755 #{resp} +   ") + else #puts "#{resp} not replaced" + end +end + +task :default_notice do                                    #notice +  default_notice +end +task :rant_default2 do                                     #secondary +  setup_find_cp_r('bin',@p.dir_bin) if File.directory?('bin') +  setup_find_cp_r('lib',@p.dir_lib) if File.directory?('lib') +  setup_find_cp_r('conf',@p.dir_conf) if File.directory?('conf') +  setup_find_cp_r('data/sisu',@p.dir_share) if File.directory?('data/sisu') # +  setup_find_cp_r('data',@p.dir_data) if File.directory?('data') +  setup_find_cp_r('data/vim',"#{@p.dir_data}/vim") if File.directory?('data/vim') +  setup_find_cp_r('man',@p.dir_man) if File.directory?('man') +end +task :setup_bin do                                         #bin +  setup_find_create('bin',@p.dir_bin) if File.directory?('bin') +end +task :setup_lib do                                         #lib +  setup_find_create('lib',@p.dir_lib) if File.directory?('lib') +end +task :setup_conf do                                        #conf +  setup_find_create('conf',@p.dir_conf) if File.directory?('conf') +end +task :setup_share do                                        #share +  setup_find_create('data/sisu',@p.dir_share) if File.directory?('data/sisu') +end +task :setup_data do                                        #data +  setup_find_create('data',@p.dir_data) if File.directory?('data') +end +task :setup_man do                                         #man +  setup_find_create('man',@p.dir_man) if File.directory?('man') #man pages +  setup_find_create('man.deb/man',@p.dir_man) if File.directory?('man.deb/man') #man pages +end +task :setup_vim do                                         #man +  setup_find_create('data/vim',@p.dir_vim) if File.directory?('data/vim') #man pages +end +                                                           #%% post install +                                                           #%% clobber/remove tasks +task :remove_bin do +  rm_r "#{@p.dir_bin}/#{@p.dir_proj}" if FileTest.file?("#{@p.dir_bin}/#{@p.dir_proj}") +end +task :remove_lib do +  rm_r "#{@p.dir_lib}/#{@p.dir_proj}" if FileTest.directory?("#{@p.dir_lib}/#{@p.dir_proj}") +end +task :remove_conf do +  rm_r "#{@p.dir_conf}/#{@p.dir_proj}" if FileTest.directory?("#{@p.dir_conf}/#{@p.dir_proj}") +end +task :remove_man do +  rm_r "#{@p.dir_man}/**/#{@p.dir_proj}" if FileTest.directory?("#{@p.dir_man}/man1/#{@p.dir_proj}") +end +task :remove_version do +  rm_r "#{@p.dir_bin}/#{@p.dir_proj}" if FileTest.file?("#{@p.dir_bin}/#{@p.dir_proj}") +  rm_r "#{@p.dir_lib}/#{@p.dir_proj}/#{@p.version}" if FileTest.directory?("#{@p.dir_lib}/#{@p.dir_proj}/#{@p.version}") +  rm_r "#{@p.dir_conf}/#{@p.dir_proj} if FileTest.directory?("#{@p.dir_conf}/#{@p.dir_proj}") +end +task :remove_package do +  rm_r "#{@p.dir_bin}/#{@p.dir_proj}" if FileTest.file?("#{@p.dir_bin}/#{@p.dir_proj}") +  rm_r "#{@p.dir_lib}/#{@p.dir_proj}" if FileTest.directory?("#{@p.dir_lib}/#{@p.dir_proj}") +  rm_r "#{@p.dir_conf}/#{@p.dir_proj}" if FileTest.directory?("#{@p.dir_conf}/#{@p.dir_proj}") +end +task :post_install_note do +  puts <<WOK + +  sisu markup samples are now packaged separately in sisu-markup-samples +    visit: +      <http://www.jus.uio.no/sisu> +      <http://search.sisudoc.org> +    and: +      <http://www.jus.uio.no/sisu/SiSU/download> + +WOK +end +task :system_info do                                       #%% system info +  rant_system_info +end +task :system_param do +  @env.each {|c| puts c.inspect } +end +task :project_help do                                       #%% help +  rant_project_help +end +task :rant_tasks do                                       #%% help +  rant_tasks +end | 
