From 580a36e59deeb14a2bac251adb1a563ab5a2e3ef Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 27 Jul 2007 21:55:25 +0100 Subject: commit rbuild as common rake rant build file --- Rakefile | 2 +- Rantfile | 2 +- rbuild | 455 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ rinstall | 438 ------------------------------------------------------------ 4 files changed, 457 insertions(+), 440 deletions(-) create mode 100644 rbuild delete mode 100644 rinstall diff --git a/Rakefile b/Rakefile index 0bae78d7..3ace5013 120000 --- a/Rakefile +++ b/Rakefile @@ -1 +1 @@ -rinstall \ No newline at end of file +rbuild \ No newline at end of file diff --git a/Rantfile b/Rantfile index 0bae78d7..3ace5013 120000 --- a/Rantfile +++ b/Rantfile @@ -1 +1 @@ -rinstall \ No newline at end of file +rbuild \ No newline at end of file diff --git a/rbuild b/rbuild new file mode 100644 index 00000000..00dab443 --- /dev/null +++ b/rbuild @@ -0,0 +1,455 @@ +#!/usr/bin/env ruby +raise 'Please, use ruby1.8.4 or later.' if RUBY_VERSION < '1.8.4' +=begin + Common Rakefile, Rantfile installer for SiSU + softlink Rakefile and Rantfile to this file + + * Homepage: + + * 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 + + Rake is a Ruby build program by Jim Weirich + * Rake may be downloaded and installed from: + + + Rant is a Ruby build program by Stefan Lang + * Rant may be downloaded and installed from: + + + Notes on use: + [if rake is preferred and installed] + rake -T + [if rant is preferred and installed] + rant -T + [else [if sisu-install is present]] + ruby sisu-install -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 rake_rant + "Rakefile/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.rake_rant} + Information on alternative actions is available using: + [if rake is installed:] + "rake help" or "rake -T" + [if rant is installed:] + "rant help" or "rant -T" + [else [if sisu-install is present]:] + "sisu-install help" or "sisu-install -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 system_info + puts < [: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,:tasks] +#desc "Setup/Install #{@p.name} (uses filelist)" +task :install => [:default_notice,:project] +task :install_bin => [:setup_bin] +desc '[make rant independent 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.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 + 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 < + + and: + + +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 diff --git a/rinstall b/rinstall deleted file mode 100644 index 3fd3147d..00000000 --- a/rinstall +++ /dev/null @@ -1,438 +0,0 @@ -#!/usr/bin/env ruby -raise 'Please, use ruby1.8.4 or later.' if RUBY_VERSION < '1.8.4' -=begin - Rantfile installer for SiSU - * Homepage: - - * 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 - - 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 < [: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 < - - and: - - -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 -- cgit v1.2.3 From 30733c44152e75563bfb501045bee64ab598bf73 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sat, 28 Jul 2007 01:23:52 +0100 Subject: dir names changed --- rbuild | 165 +++++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 84 insertions(+), 81 deletions(-) diff --git a/rbuild b/rbuild index 00dab443..a5d17478 100644 --- a/rbuild +++ b/rbuild @@ -55,54 +55,57 @@ class Project_details 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'] + 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" + v="#{dir.pwd}/conf/sisu/version.yml" version=if File.exist?(v) stamp=YAML::load(File::open(v)) stamp[:version] @@ -151,8 +154,8 @@ def chmod_util(place) 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 + 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) @@ -168,8 +171,8 @@ def setup_find_create(dir_get,dir_put) #primary, 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 + 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) @@ -186,22 +189,22 @@ def system_info Host host: #{@p.host} - arch: #{@p.dir_arch} - sitearch: #{@p.dir_sitearch} + 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 + 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} + rubylib: #{@p.dir.rubylib} WOK end @@ -375,59 +378,59 @@ 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') + 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') + 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') + 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') + 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') + 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') + 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 + 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 + 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}") + 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}") + 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}") + 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}") + 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}") + 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}") + 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 < Date: Sat, 28 Jul 2007 01:27:50 +0100 Subject: mention of rake --- README | 52 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/README b/README index 789f95e2..1742d410 100644 --- a/README +++ b/README @@ -138,16 +138,22 @@ They may be downloaded from: Otherwise to install SiSU from source, check information at: -two alternative modes of installation from source are provided, -setup.rb (by Minero Aoki) and a rant(by Stefan Lang) built install file, -in either case: the first steps are the same, download and unpack the -source file: +alternative modes of installation from source are provided, +setup.rb (by Minero Aoki), +rake (by Jim Weirich) built install file, +rant (by Stefan Lang) built install file, + +Ruby is the essential dependency for the basic operation of SiSU 1. Download the latest source (information available) from: 2. Unpack the source +Note however, that additional external package dependencies, +such as texlive or postgresql should you desire to use it +are not taken care of for you. + %% to use setup.rb --------------- this is a three step process, @@ -162,8 +168,30 @@ in the root directory of the unpacked SiSU as root type: +%% to use install (prapared with "Rake") +--------------- +Rake must be installed on your system: + + + +in the root directory of the unpacked SiSU as root type: + rake + +or + rake base + +This makes use of Rake (by Jim Weirich) and the provided Rakefile + +For a list of alternative actions you may type: + rake help + rake -T + %% to use install (prapared with "Rant") --------------- +(you may use the instructions above for rake substituting rant if rant is +installed on your system, or you may use an independent installer created using +rant as follows:) + in the root directory of the unpacked SiSU as root type: ruby ./sisu-install @@ -198,19 +226,23 @@ SiSU can make use of if available, (the use/requirement of some of which are interdependent for specific actions by SiSU): Package: sisu -Depends: ruby (>= 1.8.4), libwebrick-ruby +Architecture: all +Depends: ruby (>= 1.8.2), libwebrick-ruby, unzip, zip +Conflicts: vim-sisu, sisu-vim, sisu-remote +Replaces: vim-sisu, sisu-vim Recommends: sisu-pdf, sisu-sqlite, sisu-postgresql, librmagick-ruby, trang, - tidy, librexml-ruby, zip, unzip, openssl, rsync, openssh-client | lsh-client, - keychain, hyperestraier, kdissert -Suggests: libfcgi-ruby1.8, rcs | cvs, lv, texinfo, pinfo, rename +tidy, librexml-ruby, openssl, rsync, openssh-client | lsh-client, keychain, +hyperestraier, kdissert, vim-addon-manager +Suggests: rcs | cvs, lv, texinfo, pinfo Package: sisu-complete Depends: ruby (>= 1.8.4), sisu, sisu-pdf, sisu-postgresql, sisu-sqlite Recommends: hyperestraier Package: sisu-pdf -Depends: sisu, tetex-bin | texlive-base-bin, tetex-extra | texlive-latex-extra, - texlive-latex-extra, latex-ucs +Architecture: all +Depends: sisu, texlive-latex-base, texlive-fonts-recommended, +texlive-latex-recommended, texlive-latex-extra Suggests: evince, xpdf Package: sisu-postgresql -- cgit v1.2.3