diff options
| author | Ralph Amissah <ralph@amissah.com> | 2014-08-29 21:05:12 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2014-08-29 21:05:12 -0400 | 
| commit | aed8d0f1cae7debfb4b9e1858b56d18abbfc7bf5 (patch) | |
| tree | 0296346dfc87f91371ed086e42231fad226ec455 /setup/qi_libs_base.rb | |
| parent | debian/changelog (5.6.2-1) (diff) | |
| parent | v5 v6: dp, texpdf, copyright_and_license, minor fix, used by texpdf (diff) | |
Merge tag 'sisu_5.6.3' into debian/sid
SiSU 5.6.3
Diffstat (limited to 'setup/qi_libs_base.rb')
| -rw-r--r-- | setup/qi_libs_base.rb | 345 | 
1 files changed, 345 insertions, 0 deletions
| diff --git a/setup/qi_libs_base.rb b/setup/qi_libs_base.rb new file mode 100644 index 00000000..cd411d63 --- /dev/null +++ b/setup/qi_libs_base.rb @@ -0,0 +1,345 @@ +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 +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:] +      "#{$called_as} 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 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 Package +  def self.sequence +    puts <<-WOK +  --update-version  # update package version +  --tag             # git tags upstream version +  --merge           # git merge upstream tag into debian/sid +  --dch             # dch create and edit +  --dch-commit      # dch commit +  --build           # git-buildpackage +  --git_push        # git push changes +  --dput            # dput package +  --reprepro_update # reprepro update +  --reprepro_push   # reprepro rsync changes +    WOK +  end +  def self.tag_upstream_and_merge_into_debian_sid +    system(%{ +      git tag -a sisu_#{SiSU_VERSION} -m"SiSU #{SiSU_VERSION}" && +      git checkout debian/sid && +      git merge sisu_#{SiSU_VERSION} +    }) + +  end +  def self.tag_upstream +    system(%{ +      git tag -a sisu_#{SiSU_VERSION} -m"SiSU #{SiSU_VERSION}" +    }) +  end +  def self.merge_into_debian_sid +    system(%{ +      git checkout debian/sid && +      git merge sisu_#{SiSU_VERSION} +    }) +  end +  def self.debian_changelog_create +    if File.directory?('./debian') +      system(%{ +        git-dch -R -N #{SiSU_VERSION}-1 --full +      }) +    else puts 'not in git branch: debian/sid ?' +    end +  end +  def self.debian_changelog_commit +    system(%{ +      git commit -a -m"debian/changelog (#{SiSU_VERSION}-1)" +    }) +  end +  def self.debian_package_build +    system(%{ +      git-buildpackage --git-upstream-tag=sisu_%(version)s --git-debian-tag=debian/sisu_%(version)s --git-tag --git-keyid=#{Dev::GPGpubKey} +    }) +  end +  def self.debian_package_dput +    #system(%{ +    #  dput -s sisu_#{SiSU_VERSION}-1_amd64.changes +    #}) +    system(%{ +      dput sisu_#{SiSU_VERSION}-1_amd64.changes +    }) +  end +  def self.debian_package_push +    system(%{ +      git push --all && +      git push --tags +    }) +  end +  def self.reqprepro_update +    dir_repo=Pathname.new( +      "#{Dir.home}/grotto/repo/deb.repo/debian/rep" +    ) +    dir_build=Pathname.new( +      "#{Dir.home}/grotto/repo/git.repo/code/builds/sisu_#{SiSU_VERSION}-1_amd64.changes" +    ) +    system(%{ +      cd #{dir_repo.dirname} && +      reprepro -Vb . include unstable #{dir_build} +      cd - +    }) +  end +  def self.reprepro_push +    dir_repo=Pathname.new( +      "#{Dir.home}/grotto/repo/deb.repo/debian/rep" +    ) +    system(%{ +      cd #{dir_repo} && +      rsync -av --delete-after {dists,pool} sisudoc:/srv/www/sisu/archive/. && +      rsync -av --delete-after {dists,pool} ralpha@uio:./sisu/archive/. +    }) +  end +end | 
