#!/usr/bin/env ruby raise 'Please, use ruby1.9.3 or later.' if RUBY_VERSION < '1.9.3' =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] * 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/> Rant is a Ruby build program by Stefan Lang * Rant may be downloaded and installed from: <http://make.rubyforge.org/> 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) SiSU_manual_setting_v_current = '4.2.x' SiSU_manual_setting_v_next = '5.1.x' #% rake file SiSU_dir_v_current = 'v4' SiSU_dir_v_next = 'v5' require 'find' require 'fileutils' #require 'ftools' require 'rbconfig.rb' require 'yaml' include FileUtils class Project_details def name 'SiSU' end def rake_rant "Rakefile/Rantfile for the installation/setup of #{name}" end def platform_notice "[#{name} is for the Linux/Unix Platforms]" end def env Config::CONFIG end def host env['host'] end def dir def proj 'sisu' end def arch env['archdir'] end def sitearch env['sitearchdir'] end def bin env['bindir'] end def lib env['sitelibdir'] end def data env['datadir'] end def share "#{env['datadir']}/sisu" end def conf env['sysconfdir'] end def man env['mandir'] end def vim "#{env['datadir']}/sisu/vim" end def out "#{env['localstatedir']}/#{proj}" end def rubylib env['LIBRUBYARG_SHARED'] end def pwd Dir.pwd #ENV['PWD'] end self end def version stamp={} v="#{dir.pwd}/conf/sisu/version.yml" 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 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.rake_rant} Information on alternative actions is available using: [if rake (or rant) is installed:] "rake help" or "rake -T" (or "rant help" or "rant -T") Default action selected - "install #{@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,exclude_files=['']) #primary, begin 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) unless f =~/#{exclude_files.inspect}/ cp(f,place) chmod_file(place) "-> #{dir_put}/" end when File.directory?(f) FileUtils.mkpath(place) unless FileTest.directory?(place) "./#{dir_get}/" else '?' end puts "#{action}#{stub}" end rescue puts "\n\n<< are you root? required for install >>" 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 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 sisu_version_info def version_file def v_current_ "data/sisu/#{SiSU_dir_v_current}/v/version.yml" end def v_next_ "data/sisu/#{SiSU_dir_v_next}/v/version.yml" end self end def yml_setting_v_current v="#{Dir.pwd}/#{version_file.v_current_}" if File.exist?(v) YAML::load(File::open(v)) else '' end end def yml_setting_v_next v="#{Dir.pwd}/#{version_file.v_next_}" if File.exist?(v) YAML::load(File::open(v)) else '' end end def current puts yml_setting_v_current puts yml_setting_v_next end def system_date `date "+%Y-%m-%d"`.strip end def system_date_stamp `date "+%Yw%W/%u"`.strip end def set def manual_setting_v_current { project: 'SiSU', version: "#{SiSU_manual_setting_v_current}", date: "#{system_date}", date_stamp: "#{system_date_stamp}", } end def manual_setting_v_next { project: 'SiSU', version: "#{SiSU_manual_setting_v_next}", date: "#{system_date}", date_stamp: "#{system_date_stamp}", } end def version_info_commit(filename,versioninfo,newversioninfo,existingversioninfo,version_file_is) ans=%{update sisu version info replacing: #{existingversioninfo.sort} with: #{newversioninfo.sort} #{version_file_is} becoming: #{versioninfo} proceed? } resp=answer?(ans) exit unless resp fn="#{Dir.pwd}/#{filename}" if File.writable?("#{Dir.pwd}/.") file_version=File.new(fn,'w+') file_version << versioninfo file_version.close else puts %{*WARN* is the file or directory writable? could not create #{filename}} end end def commit_v_current versioninfo= <<-WOK --- :version: #{sisu_version_info.yml_setting_v_current[:version]} :date_stamp: #{sisu_version_info.yml_setting_v_current[:date_stamp]} :date: "#{sisu_version_info.yml_setting_v_current[:date]}" :project: #{sisu_version_info.yml_setting_v_current[:project]} WOK puts version_file.v_current_ version_info_commit(version_file.v_current_,versioninfo,set.manual_setting_v_current,sisu_version_info.yml_setting_v_current,version_file.v_current_) end def commit_v_next versioninfo= <<-WOK --- :version: #{sisu_version_info.yml_setting_v_next[:version]} :date_stamp: #{sisu_version_info.yml_setting_v_next[:date_stamp]} :date: "#{sisu_version_info.yml_setting_v_next[:date]}" :project: #{sisu_version_info.yml_setting_v_next[:project]} WOK puts version_file.v_next_ version_info_commit(version_file.v_next_,versioninfo,set.manual_setting_v_next,sisu_version_info.yml_setting_v_next,version_file.v_next_) end def date_info end def changelog_header def v_current <<-WOK %% #{sisu_version_info.yml_setting_v_current[:version]}.orig.tar.xz (#{sisu_version_info.yml_setting_v_current[:date]}:#{sisu_version_info.yml_setting_v_current[:date_stamp]}) http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_#{sisu_version_info.yml_setting_v_current[:version]} http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/debian/sisu_#{sisu_version_info.yml_setting_v_current[:version]}-1 http://www.jus.uio.no/sisu/pkg/src/sisu_#{sisu_version_info.yml_setting_v_current[:version]}.orig.tar.xz sisu_#{sisu_version_info.yml_setting_v_current[:version]}.orig.tar.xz sisu_#{sisu_version_info.yml_setting_v_current[:version]}-1.dsc WOK end def v_next <<-WOK %% #{sisu_version_info.yml_setting_v_next[:version]}.orig.tar.xz (#{sisu_version_info.yml_setting_v_next[:date]}:#{sisu_version_info.yml_setting_v_next[:date_stamp]}) http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_#{sisu_version_info.yml_setting_v_next[:version]} http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/debian/sisu_#{sisu_version_info.yml_setting_v_next[:version]}-1 http://www.jus.uio.no/sisu/pkg/src/sisu_#{sisu_version_info.yml_setting_v_next[:version]}.orig.tar.xz sisu_#{sisu_version_info.yml_setting_v_next[:version]}.orig.tar.xz sisu_#{sisu_version_info.yml_setting_v_next[:version]}-1.dsc WOK end self end self end self end def version_update_manual puts 'date: ' + `date "+%Y-%m-%d"` puts 'date_stamp: ' + `date "+%Yw%W/%u"` end def gemspecs def sisu_info_current puts <<-WOK -- name: #{sisu_version_info.yml_setting_v_current[:project].downcase} version: #{sisu_version_info.yml_setting_v_current[:version]} date: #{sisu_version_info.yml_setting_v_current[:date]} summary: #{sisu_version_info.yml_setting_v_current[:project]} WOK end def sisu_yml_current <<-WOK Gem::Specification.new do |s| s.name = '#{sisu_version_info.yml_setting_v_current[:project].downcase}' s.version = '#{sisu_version_info.yml_setting_v_current[:version]}' s.date = '#{sisu_version_info.yml_setting_v_current[:date]}' s.summary = '#{sisu_version_info.yml_setting_v_current[:project]}' s.description = 'SiSU gem' s.authors = ["Ralph Amissah"] s.email = 'ralph.amissah@gmail.com' s.files = Dir['lib/sisu/#{SiSU_dir_v_current}/*.rb'] + Dir['data/sisu/#{SiSU_dir_v_current}/v/version.yml'] + Dir['bin/sisugem'] + Dir['bin/sisu'] s.license = 'GPL3' s.executables << 'sisugem' << 'sisu' end WOK end def sisu_manual_setting_current <<-WOK Gem::Specification.new do |s| s.name = '#{sisu_version_info.set.manual_setting_v_current[:project].downcase}' s.version = '#{sisu_version_info.set.manual_setting_v_current[:version]}' s.date = '#{sisu_version_info.set.manual_setting_v_current[:date]}' s.summary = '#{sisu_version_info.set.manual_setting_v_current[:project]}' s.description = 'SiSU gem' s.authors = ["Ralph Amissah"] s.email = 'ralph.amissah@gmail.com' s.files = Dir['lib/sisu/#{SiSU_dir_v_current}/*.rb'] + Dir['data/sisu/#{SiSU_dir_v_current}/v/version.yml'] + Dir['bin/sisugem'] + Dir['bin/sisu'] s.license = 'GPL3' s.executables << 'sisugem' << 'sisu' end WOK end def sisu_info_next puts <<-WOK -- name: #{sisu_version_info.yml_setting_v_next[:project].downcase} version: #{sisu_version_info.yml_setting_v_next[:version]} date: #{sisu_version_info.yml_setting_v_next[:date]} summary: #{sisu_version_info.yml_setting_v_next[:project]} WOK end def sisu_yml_next <<-WOK Gem::Specification.new do |s| s.name = '#{sisu_version_info.yml_setting_v_next[:project].downcase}' s.version = '#{sisu_version_info.yml_setting_v_next[:version]}' s.date = '#{sisu_version_info.yml_setting_v_next[:date]}' s.summary = '#{sisu_version_info.yml_setting_v_next[:project]}' s.description = 'SiSU gem' s.authors = ["Ralph Amissah"] s.email = 'ralph.amissah@gmail.com' s.files = Dir['lib/sisu/#{SiSU_dir_v_next}/*.rb'] + Dir['data/sisu/#{SiSU_dir_v_next}/v/version.yml'] + Dir['bin/sisugem'] + Dir['bin/sisu'] s.license = 'GPL3' s.executables << 'sisugem' << 'sisu' end WOK end def sisu_manual_setting_next <<-WOK Gem::Specification.new do |s| s.name = '#{sisu_version_info.set.manual_setting_v_next[:project].downcase}' s.version = '#{sisu_version_info.set.manual_setting_v_next[:version]}' s.date = '#{sisu_version_info.set.manual_setting_v_next[:date]}' s.summary = '#{sisu_version_info.set.manual_setting_v_next[:project]}' s.description = 'SiSU gem' s.authors = ["Ralph Amissah"] s.email = 'ralph.amissah@gmail.com' s.files = Dir['lib/sisu/#{SiSU_dir_v_next}/*.rb'] + Dir['data/sisu/#{SiSU_dir_v_next}/v/version.yml'] + Dir['bin/sisugem'] + Dir['bin/sisu'] s.license = 'GPL3' s.executables << 'sisugem' << 'sisu' end WOK end def gemspec_create(filename,gemspec) fn="#{Dir.pwd}/#{filename}" if File.writable?("#{Dir.pwd}/.") file_sisu_gemspec=File.new(fn,'w+') file_sisu_gemspec << gemspec file_sisu_gemspec.close else puts %{*WARN* is the file or directory writable? could not create #{filename}} end end def sisu_filename_yml_current "sisu-#{sisu_version_info.yml_setting_v_current[:version]}" end def sisu_filename_yml_next "sisu-#{sisu_version_info.yml_setting_v_next[:version]}" end def sisu_filename_manual_current "sisu-#{sisu_version_info.set.manual_setting_v_current[:version]}" end def sisu_filename_manual_next "sisu-#{sisu_version_info.set.manual_setting_v_next[:version]}" end def sisu_gemspec_create_current filename="#{sisu_filename_yml_current}.gemspec" gemspec_create(filename,sisu_yml_current) gemspec_create('sisu-current.gemspec',sisu_yml_current) end def sisu_gemspec_create_next filename="#{sisu_filename_yml_next}.gemspec" gemspec_create(filename,sisu_yml_next) gemspec_create('sisu-next.gemspec',sisu_yml_next) end def sisu_gemspec_create_manual_version_current filename="#{sisu_filename_manual_current}.gemspec" gemspec_create(filename,sisu_manual_setting_current) end def sisu_gemspec_create_manual_version_next filename="#{sisu_filename_manual_next}.gemspec" gemspec_create(filename,sisu_manual_setting_next) end def sisu_build_current system(%{ gem build #{sisu_filename_yml_current}.gemspec }) end def sisu_build_next system(%{ gem build #{sisu_filename_yml_next}.gemspec }) end def sisu_build_manual_current system(%{ gem build #{sisu_filename_manual_current}.gemspec}) end def sisu_build_manual_next system(%{ gem build #{sisu_filename_manual_next}.gemspec}) end def sisu_install_current system(%{ sudo gem install --no-rdoc --no-ri --verbose sisu-#{sisu_version_info.yml_setting_v_current[:version]}.gem }) end def sisu_install_next system(%{ sudo gem install --no-rdoc --no-ri --verbose sisu-#{sisu_version_info.yml_setting_v_next[:version]}.gem }) end def sisu_install_manual_current system(%{ sudo gem install --no-rdoc --no-ri --verbose #{sisu_filename_manual_current}.gem }) end def sisu_install_manual_next system(%{ sudo gem install --no-rdoc --no-ri --verbose #{sisu_filename_manual_next}.gem }) end self end def project_help puts <<WOK #{@p.name} #{@p.rake_rant} #{@p.platform_notice} Commands quick start list #{@p.name} Rake/Rant Help: (Rakefile or Rantfile) rake -T or rant -T # a task list, (generated by Rake or Rant) for more complete and up to date help rake system or rant system # system info used Quick start install and remove project #{@p.name} as root: rake or rant # install #{@p.name} rake base rake setup # install #{@p.name} (larger install) rake install # reinstall #{@p.name} rake remove # clobber/remove #{@p.name}, current version: #{@p.version} rake remove_package # clobber/remove #{@p.name}, all versions For a more detailed and up to date list of command options use: rake -T rant -T WOK end def tasks system('rake -T') end #% tasks desc "rake/rant sisu install (as root type 'rake' or 'rant')" task :default => [:default_notice,:setup_base] #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] desc "check package version" task :sisuversion => [:sisu_version] desc "set package version" task :sisuversionset => [:sisu_version_set] desc "check gemspec info" task :gemspec => [:gemspec_info] desc "create sisu v_current gemspec" task :gem4cs => [:gemspecs_current_create_default_version] task :gem4createspecs => [:gemspecs_current_create_default_version] desc "create sisu v_next gemspec" task :gem5cs => [:gemspecs_next_create_default_version] task :gem5createspecs => [:gemspecs_next_create_default_version] desc "create gemspec" task :gemcs => [:gemspecs_create_default_version] task :gemc => [:gemspecs_create_default_version] task :gemspecscreate => [:gemspecs_create_default_version] #--- desc "build gem" task :gemb => [:gem_build] task :gembuild => [:gem_build] desc "build sisu v_current gem" task :gem4b => [:gem_current_build] task :gem4build => [:gem_current_build] desc "build sisu v_next gem" task :gem5b => [:gem_next_build] task :gem5build => [:gem_next_build] desc "install gem" task :gemi => [:gem_install] task :geminstall => [:gem_install] desc "build & install sisu v_current gem" task :gem4bi => [:gem_current_build,:gem_install] desc "build & install sisu v_next gem" task :gem5bi => [:gem_next_build,:gem_install] desc "build & install gem" task :gembi => [:gem_build,:gem_install] desc "create, build & install sisu v_current gem" task :gem4cbi => [:gemspecs_current_create_default_version,:gem_current_build,:gem_current_install] desc "create, build & install sisu v_next gem" task :gem5cbi => [:gemspecs_next_create_default_version,:gem_next_build,:gem_next_install] desc "create, build & install sisu v_current & v_next gem" task :gemcbi => [:gemspecs_create_default_version,:gem_build,:gem_install] #--- desc "create sisu v_current gemspec, manually set version" task :gem4csm => [:gemspecs_current_create_manual_version] desc "create sisu v_next gemspec, manually set version" task :gem5csm => [:gemspecs_next_create_manual_version] desc "create gemspec, manually set version" task :gemcsm => [:gemspecs_create_manual_version] task :gemcm => [:gemspecs_create_manual_version] #--- desc "build gem" task :gembm => [:gem_build_manual_version] desc "build sisu v_current gem" task :gem4bm => [:gem_current_build_manual_version] desc "build sisu v_next gem" task :gem5bm => [:gem_next_build_manual_version] desc "install gem" task :gemim => [:gem_install_manual_version] desc "build & install sisu v_current gem" task :gem4bim => [:gem_current_build_manual_version,:gem_install_manual_version] desc "build & install sisu v_next gem" task :gem5bim => [:gem_next_build_manual_version,:gem_install_manual_version] desc "build & install gem" task :gembim => [:gem_build_manual_version,:gem_install_manual_version] desc "create, build & install sisu v_current gem" task :gem4cbim => [:gemspecs_current_create_manual_version,:gem_current_build_manual_version,:gem_current_install_manual_version] desc "create, build & install sisu v_next gem" task :gem5cbim => [:gemspecs_next_create_manual_version,:gem_next_build_manual_version,:gem_next_install_manual_version] desc "create, build & install sisu v_current & v_next gem" task :gemcbim => [:gemspecs_create_manual_version,:gem_build_manual_version,:gem_install_manual_version] #--- desc "check changelog headers" task :changelogheaders => [:changelog_headers] 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 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,:tasks] #desc "Setup/Install #{@p.name} (uses filelist)" task :install => [:default_notice,:project] task :install_bin => [:setup_bin] #%% setup/install tasks task :rant_independence do #notice resp='' while resp.length < 4 resp='sisu-install' #default name install print %{#{@p.rake_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 :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 exclude_files=['sisugem'] setup_find_create('bin',@p.dir.bin,exclude_files) 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 task :gemspec_info do #man version_update_manual gemspecs.sisu_info_current gemspecs.sisu_info_next end task :gemspecs_current_create_default_version do #man gemspecs.sisu_gemspec_create_current end task :gemspecs_next_create_default_version do #man gemspecs.sisu_gemspec_create_next end task :gemspecs_create_default_version do #man gemspecs.sisu_gemspec_create_current gemspecs.sisu_gemspec_create_next end task :gemspecs_current_create_manual_version do #man gemspecs.sisu_gemspec_create_manual_version_current end task :gemspecs_next_create_manual_version do #man gemspecs.sisu_gemspec_create_manual_version_next end task :gemspecs_create_manual_version do #man gemspecs.sisu_gemspec_create_manual_version_current gemspecs.sisu_gemspec_create_manual_version_next end task :gem_current_build do #man gemspecs.sisu_build_current end task :gem_next_build do #man gemspecs.sisu_build_next end task :gem_build do #man gemspecs.sisu_build_current gemspecs.sisu_build_next end task :gem_current_build_manual_version do #man gemspecs.sisu_build_manual_current end task :gem_next_build_manual_version do #man gemspecs.sisu_build_manual_next end task :gem_build_manual_version do #man gemspecs.sisu_build_manual_current gemspecs.sisu_build_manual_next end task :gem_current_install do #man gemspecs.sisu_install_current end task :gem_next_install do #man gemspecs.sisu_install_next end task :gem_install do #man gemspecs.sisu_install_current gemspecs.sisu_install_next end task :gem_current_install_manual_version do #man gemspecs.sisu_install_manual_current end task :gem_next_install_manual_version do #man gemspecs.sisu_install_manual_next end task :gem_install_manual_version do #man gemspecs.sisu_install_manual_current gemspecs.sisu_install_next end task :changelog_headers do #man puts '---' puts sisu_version_info.set.changelog_header.v_current puts '---' puts sisu_version_info.set.changelog_header.v_next end task :sisu_version do #man puts sisu_version_info.set.manual_setting_v_current puts sisu_version_info.set.manual_setting_v_next puts sisu_version_info.current #version.current.each do |x| # puts x #end puts sisu_version_info.yml_setting_v_current[:project] puts sisu_version_info.yml_setting_v_current[:version] puts sisu_version_info.yml_setting_v_current[:date] puts sisu_version_info.yml_setting_v_current[:date_stamp] puts '---' puts sisu_version_info.yml_setting_v_next[:project] puts sisu_version_info.yml_setting_v_next[:version] puts sisu_version_info.yml_setting_v_next[:date] puts sisu_version_info.yml_setting_v_next[:date_stamp] end task :sisu_version_set do #man sisu_version_info.set.commit_v_current sisu_version_info.set.commit_v_next 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 system_info end task :system_param do @env.each {|c| puts c.inspect } end task :project_help do #%% help project_help end task :tasks do #%% help tasks end