diff options
author | Ralph Amissah <ralph@amissah.com> | 2014-08-29 19:26:17 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2014-08-29 19:26:17 -0400 |
commit | 1fe52e4dd446a2cfb24c4429ee6d366a8451374e (patch) | |
tree | 1adc55ccd0f1c2cba3942257033273dd2e6911c6 /rbuild | |
parent | v5 v6: version & changelog (& rakefile) (diff) |
setup/ (start using) Rakefile Rantfile link to setup/rbuild
Diffstat (limited to 'rbuild')
-rw-r--r-- | rbuild | 990 |
1 files changed, 0 insertions, 990 deletions
diff --git a/rbuild b/rbuild deleted file mode 100644 index 32b45dc0..00000000 --- a/rbuild +++ /dev/null @@ -1,990 +0,0 @@ -#!/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] - - * 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_version_next_stable = '5.6.3' #% set version stable current -SiSU_version_next_unstable = '6.2.4' #% set version unstable dev -#% rake file -SiSU_version_generic_next_stable = '5.4.x' -SiSU_version_generic_next_unstable = '6.0.x' -SiSU_version_dir_stable = 'v5' -SiSU_version_dir_unstable = 'v6' -require 'find' -require 'fileutils' -#require 'ftools' -require 'rbconfig.rb' -require 'yaml' -include FileUtils -module Project_details - def self.name - 'SiSU' - end - def self.rake_rant - "Rakefile/Rantfile for the installation/setup of #{name}" - end - def self.platform_notice - "[#{name} is for Linux/Unix Platforms]" - end - def self.env - RbConfig::CONFIG - end - def self.host - env['host'] - end - def self.dir - def self.proj - Project_details.name.downcase - end - def self.arch - env['archdir'] - end - def self.sitearch - env['sitearchdir'] - end - def self.bin - env['bindir'] - end - def self.lib - env['sitelibdir'] - end - def self.data - env['datadir'] - end - def self.share - "#{env['datadir']}/sisu" - end - def self.conf - env['sysconfdir'] - end - def self.man - env['mandir'] - end - def self.vim - "#{env['datadir']}/sisu/vim" - end - def self.out - "#{env['localstatedir']}/#{proj}" - end - def self.rubylib - env['LIBRUBYARG_SHARED'] - end - def self.pwd - Dir.pwd #ENV['PWD'] - end - self - end - def self.version - stamp={} - v="#{dir.pwd}/conf/sisu/version.yml" - if File.exist?(v) - stamp=YAML::load(File::open(v)) - stamp[:version] - else '' - end - end - def self.system_info - ##{Project_details.platform_notice} - puts <<-WOK - Host - host: #{Project_details.host} - arch: #{Project_details.dir.arch} - sitearch: #{Project_details.dir.sitearch} - Directories for installation - bin: #{Project_details.dir.bin} - lib (site-ruby): #{Project_details.dir.lib}/#{Project_details.dir.proj}/v* - conf [etc]: #{Project_details.dir.conf}/#{Project_details.dir.proj} - data (odf, shared images): #{Project_details.dir.share} - vim (vim syntax, highlighting, ftplugin): #{Project_details.dir.data}/sisu/vim - data (README, version_manifest): #{Project_details.dir.data}/doc/#{Project_details.dir.proj} - man (manual pages): #{Project_details.dir.man} - output: #{Project_details.dir.out} - processing: #{Project_details.dir.out}/processing - www: #{Project_details.dir.out}/www - rubylib: #{Project_details.dir.rubylib} - - WOK - end - def self.gem_env - system("gem env") - end -end -module Utils - def self.answer?(ask) - resp='redo' - print ask + " ['yes', 'no' or 'quit']: " - resp=File.new('/dev/tty').gets.strip #resp=gets.strip - if resp == 'yes' then true - elsif resp == 'no' then false - elsif resp =~/^quit|exit$/ then exit - else puts "[please type: 'yes', 'no' or 'quit']" - answer?(ask) - end - end - def self.default_notice - ans= %{#{Project_details.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 #{Project_details.name}" proceed? } - resp=answer?(ans) - exit unless resp - end - def self.chmod_file(place) - if place =~/\/bin/; File.chmod(0755,place) - else File.chmod(0644,place) - end - end - def self.chmod_util(place) - if place =~/\/bin/; chmod(0755,place) - else chmod(0644,place) - end - end - def self.system_date - `date "+%Y-%m-%d"`.strip - end - def self.system_date_stamp - `date "+%Yw%W/%u"`.strip - end - def self.program_found?(prog) - found=`which #{prog}` #`whereis #{make}` - (found =~/bin\/#{prog}\b/) ? :true : :false - end -end -module Install - #%% using a directory and its mapping - def self.setup_find_create(dir_get,dir_put,exclude_files=['']) #primary, - begin - Find.find("#{Project_details.dir.pwd}/#{dir_get}") do |f| - stub=f.scan(/#{Project_details.dir.pwd}\/#{dir_get}\/(\S+)/).join - place="#{dir_put}/#{stub}" - action=case - when File.file?(f) - unless f =~/#{exclude_files.inspect}/ - cp(f,place) - Utils.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 self.setup_find_cp_r(dir_get,dir_put) #secondary, using recursive copy - Find.find("#{Project_details.dir.pwd}/#{dir_get}") do |f| - stub=f.scan(/#{Project_details.dir.pwd}\/#{dir_get}\/(\S+)/).join - place="#{dir_put}/#{stub}" - case - when File.file?(f) - cp_r(f,place) - Utils.chmod_util(place) - when File.directory?(f) - mkdir(place) unless FileTest.directory?(place) - end - end - end -end -module Version_info - def self.contents(vi) - <<-WOK ---- -:project: #{vi[:project]} -:version: #{vi[:version]} -:date_stamp: #{vi[:date_stamp]} -:date: "#{vi[:date]}" - WOK - end - module Current - def self.yml_file_path(version) - "data/sisu/#{version}/v/version.yml" - end - def self.settings(file) - v="#{Dir.pwd}/#{file}" - if File.exist?(v) - YAML::load(File::open(v)) - else '' - end - end - def self.file_stable - yml_file_path(SiSU_version_dir_stable) - end - def self.file_unstable - yml_file_path(SiSU_version_dir_unstable) - end - def self.setting_stable - settings(file_stable) - end - def self.setting_unstable - settings(file_unstable) - end - def self.content_stable - Version_info.contents(setting_stable) - end - def self.content_unstable - Version_info.contents(setting_unstable) - end - end - module Next - def self.settings(v) - { - project: "#{Project_details.name}", - version: "#{v}", - date: "#{Utils.system_date}", - date_stamp: "#{Utils.system_date_stamp}", - } - end - def self.setting_stable - settings(SiSU_version_next_stable) - end - def self.setting_unstable - settings(SiSU_version_next_unstable) - end - def self.content_stable - Version_info.contents(setting_stable) - end - def self.content_unstable - Version_info.contents(setting_unstable) - end - end - module Update - def self.version_info_update_commit(filename,vi_hash_current,vi_content_current,vi_hash_next,vi_content_next) - ans=%{update #{Project_details.name.downcase} version info replacing: - #{vi_hash_current.sort} -with: - #{vi_hash_next.sort} - -#{vi_content_current} becoming: -#{vi_content_next} -proceed? } - resp=Utils.answer?(ans) - if resp - fn="#{Dir.pwd}/#{filename}" - if File.writable?("#{Dir.pwd}/.") - file_version=File.new(fn,'w+') - file_version << vi_content_next - file_version.close - else - puts %{*WARN* is the file or directory writable? could not create #{filename}} - end - end - end - def self.update_stable - version_info_update_commit(Version_info::Current.file_stable,Version_info::Current.setting_stable,Version_info::Current.content_stable,Version_info::Next.setting_stable,Version_info::Next.content_stable) - end - def self.update_unstable - version_info_update_commit(Version_info::Current.file_unstable,Version_info::Current.setting_unstable,Version_info::Current.content_unstable,Version_info::Next.setting_unstable,Version_info::Next.content_unstable) - end - def self.changelog_header(vi) - <<-WOK -%% #{vi[:version]}.orig.tar.xz (#{vi[:date]}:#{vi[:date_stamp].gsub(/20\d\dw/,'')}) -http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/sisu_#{vi[:version]} -http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_#{vi[:version]}-1 -http://www.jus.uio.no/sisu/pkg/src/sisu_#{vi[:version]}.orig.tar.xz - sisu_#{vi[:version]}.orig.tar.xz - sisu_#{vi[:version]}-1.dsc - WOK - end - def self.changelog_header_stable - changelog_header(Version_info::Current.setting_stable) - end - def self.changelog_header_unstable - changelog_header(Version_info::Current.setting_unstable) - end - end - self -end -module GitExtractTaggedVersionBuild - def upstream - system(%{ git checkout upstream }) - end - def self.git_tagged_versions(vb=nil) - if vb.tag - v=if vb.tag =~/sisu_[0-9](?:\.[0-9]){0,2}$/ then vb.tag - elsif vb.tag =~/^[0-9](?:\.[0-9]){0,2}$/ then 'sisu_' + vb.tag - else 'sisu_' - end - system(%{ git tag -l | ag --nocolor '^#{v}' }) - end - end - def self.git_checkout_and_build_version(vb) - begin - ver=if vb.tag =~/sisu_[0-9]\.[0-9]+\.[0-9]+/ then vb.tag - elsif vb.tag =~/^[0-9]\.[0-9]+\.[0-9]+/ then 'sisu_' + vb.tag - else vb.branch - end - install_branch=case vb.branch - when /^(?:stable|unstable)$/ - "gem_create_build_install_#{vb.branch}" - when /^(?:all)/ - 'gem_create_build_install' - else - 'gem_create_build_install_stable' - end - commands =<<-WOK - git checkout #{ver} && - rake #{install_branch}; - WOK - puts commands - system(commands) - ensure - system(%{ - git checkout upstream - }) - end - end -end -module Gemspecs - def self.info(vi) - puts <<-WOK --- -name: #{vi[:project].downcase} -version: #{vi[:version]} -date: #{vi[:date]} -summary: #{vi[:project]} - WOK - end - def self.contents(vi,version) - <<-WOK -Gem::Specification.new do |s| - s.name = '#{vi[:project].downcase}' - s.version = '#{vi[:version]}' - s.date = '#{vi[:date]}' - s.summary = '#{vi[:project]}' - s.description = '#{Project_details.name} gem' - s.authors = ["Ralph Amissah"] - s.email = 'ralph.amissah@gmail.com' - s.files = Dir['lib/#{Project_details.name.downcase}/#{version}/*.rb'] + - Dir['data/#{Project_details.name.downcase}/#{version}/v/version.yml'] + - Dir['data/#{Project_details.name.downcase}/image/*'] + - Dir['bin/#{Project_details.name.downcase}gem'] + - Dir['bin/#{Project_details.name.downcase}'] - s.license = 'GPL3' - s.executables << '#{Project_details.name.downcase}gem' << '#{Project_details.name.downcase}' -end - WOK - end - def self.create(filename,gemspec) - fn="#{Dir.pwd}/#{filename}.gemspec" - 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 self.build(fn) - system(%{ gem build #{fn}.gemspec }) - end - def self.install(fn) - system(%{ - sudo gem install --no-document --verbose #{fn}.gem - }) - end - module Current - def self.filename_stable - "#{Project_details.name.downcase}-#{Version_info::Current.setting_stable[:version]}" - end - def self.filename_unstable - "#{Project_details.name.downcase}-#{Version_info::Current.setting_unstable[:version]}" - end - def self.info_stable - Gemspecs.info(Version_info::Current.setting_stable) - end - def self.info_unstable - Gemspecs.info(Version_info::Current.setting_unstable) - end - def self.current_stable - Gemspecs.contents(Version_info::Current.setting_stable,SiSU_version_dir_stable) - end - def self.current_unstable - Gemspecs.contents(Version_info::Current.setting_unstable,SiSU_version_dir_unstable) - end - def self.create_stable - Gemspecs.create(filename_stable,current_stable) - Gemspecs.create("#{Project_details.name.downcase}-stable",current_stable) - end - def self.create_unstable - Gemspecs.create(filename_unstable,current_unstable) - Gemspecs.create("#{Project_details.name.downcase}-unstable",current_unstable) - end - def self.build_stable - Gemspecs.build(filename_stable) - end - def self.build_unstable - Gemspecs.build(filename_unstable) - end - def self.install_stable - Gemspecs.install(filename_stable) - end - def self.install_unstable - Gemspecs.install(filename_unstable) - end - end - module Next - def self.filename_stable - "#{Project_details.name.downcase}-#{Version_info::Next.setting_stable[:version]}" - end - def self.filename_unstable - "#{Project_details.name.downcase}-#{Version_info::Next.setting_unstable[:version]}" - end - def self.setting_stable - Gemspecs.contents(Version_info::Next.setting_stable,SiSU_version_dir_stable) - end - def self.setting_unstable - Gemspecs.contents(Version_info::Next.setting_unstable,SiSU_version_dir_unstable) - end - def self.create_stable - Gemspecs.create(filename_stable,setting_stable) - end - def self.create_unstable - Gemspecs.create(filename_unstable,setting_unstable) - end - def self.build_stable - Gemspecs.build(filename_stable) - end - def self.build_unstable - Gemspecs.build(filename_unstable) - end - def self.install_stable - Gemspecs.install(filename_stable) - end - def self.install_unstable - Gemspecs.install(filename_unstable) - end - end -end -module Help - def self.project_help - puts <<WOK - -#{Project_details.name} - #{Project_details.rake_rant} - #{Project_details.platform_notice} - -Commands quick start list - #{Project_details.name} Rake/Rant Help: (Rakefile or Rantfile) - rake (rake -T or rant -T) # a task list, (generated by Rake or Rant) for more complete and up to date help - - Quick start install and remove project #{Project_details.name}, as root: - rake setup # install #{Project_details.name} - rake resetup # reinstall #{Project_details.name} - rake remove_package # clobber/remove #{Project_details.name}, all versions - alternatively to install as a gem: - rake gem_create_build_install # create gemspec; build gem, &; install gem, for #{Project_details.name} - - NOTE: these install options DO NOT setup #{Project_details.name} dependencies for: - LaTeX(XeTeX) pdf output; or - databases (postgresql or sqlite3) for #{Project_details.name} search - should you wish to produce outputs that depend on them - (on Debian for example this is the work of the debian installer) - -WOK - end - def self.tasks(make='rake') - begin - system("#{make} -T") - rescue - puts 'is either rake or rant installed?' - end - end -end -#% tasks -desc "show rake/rant tasks for sisu install, and sisu gem (create spec, build &) install" - task :default => [:note_sources,:tasks,:note_installation] #[:default_notice,:setup_base] -desc "Setup/Install #{Project_details.name}" - task :setup_project=> [:setup_bin_,:setup_lib_,:setup_conf_,:setup_share_,:setup_data_,:setup_man_,:setup_vim_,:src_note] - task :project=> [:setup_project] -desc "Setup/Install #{Project_details.name}" - task :setup=> [:setup_bin_, :setup_lib_,:setup_conf_,:setup_share_,:setup_data_] #, :help] -desc "Setup/Install #{Project_details.name}: bin, lib and conf (no data)" - task :setup_base=> [:setup_bin_,:setup_lib_,:setup_conf_,:setup_share_,:setup_man_,:setup_vim_,:note_sources] - task :base=> [:setup_base] -desc "Setup/Install #{Project_details.name}: bin, lib, conf & data" - task :setup_with_data=> [:setup_base,:setup_data] -desc "check package version" - task :sisuversion => [:sisu_version] - task :version => [:sisu_version] -#desc "set package version" - task :sisuversionset => [:sisu_version_set,:changelog_headers] -desc "check gemspec info" - task :gem_spec => [:gemspec_info] -desc "create sisu v_stable gemspec" - task :gem_create_spec_stable => [:gemspecs_stable_create_default_version] - task :gem5cs => [:gem_create_spec_stable] - task :gem5createspecs => [:gemspecs_stable_create_default_version] -desc "create sisu v_unstable gemspec" - task :gem_create_spec_unstable => [:gemspecs_unstable_create_default_version] - task :gem6cs => [:gem_create_spec_unstable] - task :gem6createspecs => [:gemspecs_unstable_create_default_version] -desc "create gemspec" - task :gem_create_spec => [:gemspecs_create_default_version] - task :gemcs => [:gemspecs_create_default_version] - task :gemc => [:gemspecs_create_default_version] - task :gemspecscreate => [:gemspecs_create_default_version] -#--- -desc "build gem" - task :gem_build => [:gem_build_] - task :gemb => [:gem_build] - task :gembuild => [:gem_build] -desc "build sisu v_stable gem" - task :gem_build_stable => [:gem_stable_build] - task :gem5b => [:gem_build_stable] - task :gem5build => [:gem_build_stable] -desc "build sisu v_unstable gem" - task :gem_build_unstable => [:gem_unstable_build] - task :gem6b => [:gem_build_unstable] - task :gem6build => [:gem_build_unstable] -#--- -desc "create, build & install sisu v_stable gem" - task :gem_create_build_install_stable => [:gemspecs_stable_create_default_version,:gem_stable_build,:gem_stable_install] - task :gem5cbi => [:gem_create_build_install_stable] -desc "create, build & install sisu v_unstable gem" - task :gem_create_build_install_unstable => [:gemspecs_unstable_create_default_version,:gem_unstable_build,:gem_unstable_install] - task :gem6cbi => [:gem_create_build_install_unstable] -desc "create, build & install sisu v_stable & v_unstable gem" - task :gem_create_build_install => [:gemspecs_create_default_version,:gem_build_,:gem_install_] - task :gemcbi => [:gem_create_build_install] -#--- -desc "install gem" - task :gem_install => [:gem_install_] - task :gemi => [:gem_install] - task :geminstall => [:gem_install] -desc "build & install sisu v_stable gem" - task :gem_build_install_stable => [:gem_stable_build,:gem_install_] - task :gem5bi => [:gem_build_install_stable] -desc "build & install sisu v_unstable gem" - task :gem_build_install_unstable => [:gem_unstable_build,:gem_install_] - task :gem6bi => [:gem_build_install_unstable] -desc "build & install gem" - task :gem_build_install => [:gem_build,:gem_install_] - task :gembi => [:gem_build_install] -#-- manually set next version -#desc "create sisu v_stable gemspec, manually set next version" - task :gem5csn => [:gemspecs_stable_create_next_version] -#desc "create sisu v_unstable gemspec, manually set next version" - task :gem6csn => [:gemspecs_unstable_create_next_version] -#desc "create gemspec, manually set next version" - task :gemcsn => [:gemspecs_create_next_version] - task :gemcn => [:gemspecs_create_next_version] -#desc "build gem, manually set next version" - task :gembn => [:gem_build_next_version] -#desc "build sisu v_stable gem, manually set next version" - task :gem5bn => [:gem_stable_build_next_version] -#desc "build sisu v_unstable gem, manually set next version" - task :gem6bn => [:gem_unstable_build_next_version] -#desc "install gem, manually set next version" - task :gemin => [:gem_install_next_version] -#desc "build & install sisu v_stable gem, manually set next version" - task :gem5bin => [:gem_stable_build_next_version,:gem_install_next_version] -#desc "build & install sisu v_unstable gem, manually set next version" - task :gem6bin => [:gem_unstable_build_next_version,:gem_install_next_version] -#desc "build & install gem, manually set next version" - task :gembin => [:gem_build_next_version,:gem_install_next_version] -#desc "create, build & install sisu v_stable gem, manually set next version" - task :gem5cbin => [:gemspecs_stable_create_next_version,:gem_stable_build_next_version,:gem_stable_install_next_version] -#desc "create, build & install sisu v_unstable gem, manually set next version" - task :gem6cbin => [:gemspecs_unstable_create_next_version,:gem_unstable_build_next_version,:gem_unstable_install_next_version] -#desc "create, build & install sisu v_stable & v_unstable gem, manually set next version" - task :gemcbin => [:gemspecs_create_next_version,:gem_build_next_version,:gem_install_next_version] -#--- -#desc "check changelog headers" - task :changelogheaders => [:changelog_headers] - task :dev => [:note_developer] - task :developer_note => [:note_developer] -if File.directory?('bin') - desc "Setup #{Project_details.name} bin only, synonym :bin" - task :setup_bin => [:setup_bin_] - task :bin => [:setup_bin] -end -if File.directory?('lib') - desc "Setup #{Project_details.name} lib only, synonym :lib" - task :setup_lib => [:setup_lib_] - task :lib => [:setup_lib] -end -if File.directory?('conf') - desc "Setup #{Project_details.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') - desc "Setup #{Project_details.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') - #desc "Setup #{Project_details.name} shared data only (odf & shared images)" - task :setup_share => [:setup_share_] - task :share => [:setup_share] -end -if File.directory?('man') - desc "Setup #{Project_details.name} man pages only, synonyms :man" - task :setup_man => [:setup_man_] - task :man => [:setup_man] -end -if File.directory?('data/vim') - desc "Setup #{Project_details.name} vim config files only, synonyms :vim" - task :setup_vim => [:setup_vim_] - task :vim => [:setup_vim] -end -desc "Remove #{Project_details.name} (all versions)" - task :remove_package => [:remove_bin, :remove_lib, :remove_conf] -if File.directory?('bin') - #desc "Remove #{Project_details.name} bin only" - task :remove_bin => [:remove_bin] -end -if File.directory?('lib') - #desc "Remove #{Project_details.name} lib only" - task :remove_lib => [:remove_lib] -end -if File.directory?('conf') - #desc "Remove #{Project_details.name} conf only" - task :remove_conf => [:remove_conf] -end -desc "Re-setup #{Project_details.name}, synonym :reinstall" - task :resetup => [:remove, :setup] - task :reinstall => [:remove, :setup] -#desc "Re-setup #{Project_details.name}: bin, lib, conf (ignore data), synonym :reinstall" - task :resetup_base => [:remove, :setup_base_] - task :reinstall_base => [:remove, :setup_base_] -if File.directory?('bin') - #desc "Re-setup #{Project_details.name} bin, synonym :reinstall" - task :resetup_bin => [:remove_bin, :setup_bin_] - task :reinstall_bin => [:remove_bin, :setup_bin_] -end -if File.directory?('lib') - #desc "Re-setup #{Project_details.name} lib, synonym :reinstall_lib" - task :resetup_lib => [:remove_lib, :setup_lib_] - task :reinstall_lib => [:remove_lib, :setup_lib_] -end -if File.directory?('conf') - #desc "Re-setup #{Project_details.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') - #desc "Re-setup #{Project_details.name} shared data, (odf & images)" - task :resetup_share => [:remove_share, :setup_share_] - task :reinstall_share => [:remove_share, :setup_share_] -end -if File.directory?('man') - #desc "Re-setup #{Project_details.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 #{Project_details.name}" - task :system => [:system_info,:project_help,:note_sources] -desc "show all system info available - parameters found" - task :system_param => [:system_param_] -desc "Gem environment information used ruby gems for #{Project_details.name}" - task :gem_env => [:gem_env_] -desc 'Help' - task :help => [:project_help,:system_info,:tasks] -#desc "Setup/Install #{Project_details.name} (uses filelist)" - task :install => [:default_notice,:project] - task :install_bin => [:setup_bin_] -#desc "search for a version tag e.g. 'tag[5.6.0]'" - task :tag, [:tag] do |t, args| - args.with_defaults(:tag => Version_info::Next.setting_stable[:version]) - puts "Check for Version Tag: #{args.tag}" - print "Version Tag: " - GitExtractTaggedVersionBuild::git_tagged_versions(args) - end -#desc "build and install a specific git tagged version of sisu, e.g. 'build[5.6.0]'" - task :build, [:tag, :branch] => :done do |t, args| - args.with_defaults(:tag => '5.6.0', :branch => 'stable') - puts "Version Tag: #{args.tag}" - puts "Branch: #{args.branch}" - GitExtractTaggedVersionBuild::git_tagged_versions(args.tag) - ans= <<-WOK - Gem Install SiSU Version - WOK - resp=Utils.answer?(ans) - exit unless resp - GitExtractTaggedVersionBuild::git_checkout_and_build_version(args) - end - task :done do - puts 'done' - end - #%% setup/install tasks -task :rant_independence do #notice - resp='' - while resp.length < 4 - resp='sisu-install' #default name install - print %{#{Project_details.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 - Utils.default_notice -end -task :default2 do #secondary - setup_find_cp_r('bin',Project_details.dir.bin) if File.directory?('bin') - setup_find_cp_r('lib',Project_details.dir.lib) if File.directory?('lib') - setup_find_cp_r('conf',Project_details.dir.conf) if File.directory?('conf') - setup_find_cp_r('data/sisu',Project_details.dir.share) if File.directory?('data/sisu') # - setup_find_cp_r('data',Project_details.dir.data) if File.directory?('data') - setup_find_cp_r('data/vim',"#{Project_details.dir.data}/vim") if File.directory?('data/vim') - setup_find_cp_r('man',Project_details.dir.man) if File.directory?('man') -end -task :setup_bin_ do - exclude_files=['sisugem'] - Install.setup_find_create('bin',Project_details.dir.bin,exclude_files) if File.directory?('bin') -end -task :setup_lib_ do - Install.setup_find_create('lib',Project_details.dir.lib) if File.directory?('lib') -end -task :setup_conf_ do - Install.setup_find_create('conf',Project_details.dir.conf) if File.directory?('conf') -end -task :setup_share_ do - Install.setup_find_create('data/sisu',Project_details.dir.share) if File.directory?('data/sisu') -end -task :setup_data_ do - Install.setup_find_create('data',Project_details.dir.data) if File.directory?('data') -end -task :setup_man_ do - Install.setup_find_create('man',Project_details.dir.man) if File.directory?('man') - Install.setup_find_create('man.deb/man',Project_details.dir.man) if File.directory?('man.deb/man') -end -task :setup_vim_ do - Install.setup_find_create('data/vim',Project_details.dir.vim) if File.directory?('data/vim') -end -task :gemspec_info do - Gemspecs.info_stable - Gemspecs.info_unstable -end -task :gemspecs_stable_create_default_version do - Gemspecs::Current.create_stable -end -task :gemspecs_unstable_create_default_version do - Gemspecs::Current.create_unstable -end -task :gemspecs_create_default_version do - Gemspecs::Current.create_stable - Gemspecs::Current.create_unstable -end -task :gemspecs_stable_create_next_version do - Gemspecs::Next.create_stable -end -task :gemspecs_unstable_create_next_version do - Gemspecs::Next.create_unstable -end -task :gemspecs_create_next_version do - Gemspecs::Next.create_stable - Gemspecs::Next.create_unstable -end -task :gem_stable_build do - Gemspecs::Current.build_stable -end -task :gem_unstable_build do - Gemspecs::Current.build_unstable -end -task :gem_build_ do - Gemspecs::Current.build_stable - Gemspecs::Current.build_unstable -end -task :gem_stable_build_next_version do - Gemspecs::Next.build_stable -end -task :gem_unstable_build_next_version do - Gemspecs::Next.build_unstable -end -task :gem_build_next_version do - Gemspecs::Next.build_stable - Gemspecs::Next.build_unstable -end -task :gem_stable_install do - Gemspecs::Current.install_stable -end -task :gem_unstable_install do - Gemspecs::Current.install_unstable -end -task :gem_install_ do - Gemspecs::Current.install_stable - Gemspecs::Current.install_unstable -end -task :gem_stable_install_next_version do - Gemspecs::Next.install_stable -end -task :gem_unstable_install_next_version do - Gemspecs::Next.install_unstable -end -task :gem_install_next_version do - Gemspecs::Next.install_stable - Gemspecs::Next.install_unstable -end -task :changelog_headers do - puts '---' - puts Version_info::Update.changelog_header_stable - puts '---' - puts Version_info::Update.changelog_header_unstable -end -task :sisu_version do - puts Version_info::Next.setting_stable - puts Version_info::Next.setting_unstable - puts '---' - puts Version_info::Current.setting_stable[:project] - puts Version_info::Current.setting_stable[:version] - puts Version_info::Current.setting_stable[:date] - puts Version_info::Current.setting_stable[:date_stamp] - puts '---' - puts Version_info::Current.setting_unstable[:project] - puts Version_info::Current.setting_unstable[:version] - puts Version_info::Current.setting_unstable[:date] - puts Version_info::Current.setting_unstable[:date_stamp] -end -task :sisu_version_set do - Version_info::Update.update_stable - Version_info::Update.update_unstable -end - #%% post install - #%% clobber/remove tasks -task :remove_bin do - rm_r "#{Project_details.dir.bin}/#{Project_details.dir.proj}" if FileTest.file?("#{Project_details.dir.bin}/#{Project_details.dir.proj}") -end -task :remove_lib do - rm_r "#{Project_details.dir.lib}/#{Project_details.dir.proj}" if FileTest.directory?("#{Project_details.dir.lib}/#{Project_details.dir.proj}") -end -task :remove_conf do - rm_r "#{Project_details.dir.conf}/#{Project_details.dir.proj}" if FileTest.directory?("#{Project_details.dir.conf}/#{Project_details.dir.proj}") -end -task :remove_man do - rm_r "#{Project_details.dir.man}/**/#{Project_details.dir.proj}" if FileTest.directory?("#{Project_details.dir.man}/man1/#{Project_details.dir.proj}") -end -task :remove_version do - rm_r "#{Project_details.dir.bin}/#{Project_details.dir.proj}" if FileTest.file?("#{Project_details.dir.bin}/#{Project_details.dir.proj}") - rm_r "#{Project_details.dir.lib}/#{Project_details.dir.proj}/#{Project_details.version}" if FileTest.directory?("#{Project_details.dir.lib}/#{Project_details.dir.proj}/#{Project_details.version}") - rm_r "#{Project_details.dir.conf}/#{Project_details.dir.proj} if FileTest.directory?("#{Project_details.dir.conf}/#{Project_details.dir.proj}") -end -task :remove_package do - rm_r "#{Project_details.dir.bin}/#{Project_details.dir.proj}" if FileTest.file?("#{Project_details.dir.bin}/#{Project_details.dir.proj}") - rm_r "#{Project_details.dir.lib}/#{Project_details.dir.proj}" if FileTest.directory?("#{Project_details.dir.lib}/#{Project_details.dir.proj}") - rm_r "#{Project_details.dir.conf}/#{Project_details.dir.proj}" if FileTest.directory?("#{Project_details.dir.conf}/#{Project_details.dir.proj}") -end -task :note_sources do - puts <<-WOK - - SiSU project: - <http://sisudoc.org> - <http://www.jus.uio.no/sisu> - sisu source code is available at: - <http://sources.sisudoc.org> - <http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> - sisu markup samples are provided/packaged separately as sisu-markup-samples: - <http://sources.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=summary> - WOK -end -task :note_installation do - puts <<-WOK - alternative 0: distribution install, rather than this Rakefile - a distribution install pulls in the many dependencies used by sisu after - initial processing to generate and store output, significant amongst these are - XeTeX & databases (sqlite3 and postgresql) - - alternative 1: gem install, you need to: - create the gemspec; build the gem (from the gemspec); install the gem - which can be done with the single command: - rake gem_create_build_install # (to build and install sisu v5 & sisu v6, alias gemcbi) - separate gems are made/installed for sisu v5 & sisu v6 contained in source: - rake gem_create_build_install_stable # (to build and install sisu v5, alias gem5cbi) - rake gem_create_build_install_unstable # (to build and install sisu v6, alias gem6cbi) - for individual steps (create, build, install) see rake options, rake -T - to specify sisu version for sisu installed via gem - sisu _#{Version_info::Current.setting_stable[:version]}_ --version - sisu _#{Version_info::Current.setting_unstable[:version]}_ --version - to uninstall sisu installed via gem - sudo gem uninstall --verbose sisu - WOK -end -task :note_developer do - puts <<-WOK - - changelogheaders - - sisuversion - sisuversionset - - gemcsn gem5csn gem6csn - gembn gem5bn gem6bn - gemin gem5in gem6in - gembin gem5bin gem6bin - gemcbin gem5cbin gem6cbin - WOK -end - #%% help & system info -task :system_info do - Project_details.system_info -end -task :system_param_ do - Project_details.env.each {|c| puts c.inspect } -end -task :gem_env_ do - Project_details.gem_env -end -task :project_help do - Help.project_help -end -task :tasks do - Help.tasks -end |