aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2007-07-27 21:08:44 +0100
committerRalph Amissah <ralph@amissah.com>2007-07-27 21:08:44 +0100
commit01777d7a480f427254f4003205101c60129e865a (patch)
treeeed030ea0e00f7b5ed6b833dbd1814474ea906aa
parentrant installer adjustments (diff)
maintain rinstall as a common rant (Rantfile), rake (Rakefile)
-rw-r--r--CHANGELOG4
l---------Rakefile1
l---------[-rw-r--r--]Rantfile444
-rw-r--r--rinstall438
4 files changed, 443 insertions, 444 deletions
diff --git a/CHANGELOG b/CHANGELOG
index f7cad6b7..21658049 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -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
diff --git a/Rantfile b/Rantfile
index d1238822..0bae78d7 100644..120000
--- a/Rantfile
+++ b/Rantfile
@@ -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