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 | |
| parent | v5 v6: version & changelog (& rakefile) (diff) | |
setup/ (start using) Rakefile Rantfile link to setup/rbuild
| l--------- | Rakefile | 2 | ||||
| l--------- | Rantfile | 2 | ||||
| -rw-r--r-- | rbuild | 990 | ||||
| -rw-r--r-- | setup/rbuild | 646 | ||||
| -rw-r--r-- | setup/rbuild_help.rb | 36 | ||||
| -rw-r--r-- | setup/rbuild_libs.rb | 518 | ||||
| -rw-r--r-- | setup/sisu_version.rb | 13 | ||||
| l--------- | version | 1 | 
8 files changed, 1216 insertions, 992 deletions
| @@ -1 +1 @@ -rbuild
\ No newline at end of file +setup/rbuild
\ No newline at end of file @@ -1 +1 @@ -rbuild
\ No newline at end of file +setup/rbuild
\ No newline at end of file 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 diff --git a/setup/rbuild b/setup/rbuild new file mode 100644 index 00000000..315f3a34 --- /dev/null +++ b/setup/rbuild @@ -0,0 +1,646 @@ +#!/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) +require 'find' +require 'fileutils' +#require 'ftools' +require 'rbconfig.rb' +require 'yaml' +include FileUtils +require_relative 'sisu_version'                # sisu_version.rb +  include SiSUversion +require_relative 'rbuild_libs'                 # rbuild_libs.rb +  include Project_details +  include Utils +  include Version_info +  include Gemspecs +  include GitExtractTaggedVersionBuild +require_relative 'rbuild_help'                 # rbuild_help.rb +  include Help +#% 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 diff --git a/setup/rbuild_help.rb b/setup/rbuild_help.rb new file mode 100644 index 00000000..fc56c2fa --- /dev/null +++ b/setup/rbuild_help.rb @@ -0,0 +1,36 @@ +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 + diff --git a/setup/rbuild_libs.rb b/setup/rbuild_libs.rb new file mode 100644 index 00000000..5f4b8b0e --- /dev/null +++ b/setup/rbuild_libs.rb @@ -0,0 +1,518 @@ +module Project_details +  require_relative 'sisu_version' +  include SiSUversion +  def self.name +    'SiSU' +  end +  def self.thor +    "ruby-thor files 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 # local help not implemented description incorrect +    ans= %{#{Project_details.thor} +    Information on alternative actions is available using: +    [if ruby-thor is installed:] +      "rake help") +    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 +    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}" +        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 +    rescue +      puts "\n\n<< are you root? required for install >>" +    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_#{vb.branch}" +      when /^(?:all)/ +        'gem_create_build' +      else +        'gem_create_build_stable' +        #'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 +  def self.git_checkout_and_build_and_install_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 + diff --git a/setup/sisu_version.rb b/setup/sisu_version.rb new file mode 100644 index 00000000..1cb8adb9 --- /dev/null +++ b/setup/sisu_version.rb @@ -0,0 +1,13 @@ +#% constants +module SiSUversion +  SiSU_version_next_stable           = '5.6.3' #% set version stable current +  SiSU_version_next_unstable         = '6.2.4' #% set version unstable dev +  #% qi quick install 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' +end +module Dev +  GPGpubKey                          = '1BB4B289' +end diff --git a/version b/version new file mode 120000 index 00000000..8502093a --- /dev/null +++ b/version @@ -0,0 +1 @@ +setup/sisu_version.rb
\ No newline at end of file | 
