diff options
Diffstat (limited to 'rbuild')
-rw-r--r-- | rbuild | 70 |
1 files changed, 67 insertions, 3 deletions
@@ -37,8 +37,8 @@ #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.1' #% set version -SiSU_version_next_unstable = '6.2.2' #% set version +SiSU_version_next_stable = '5.6.2' #% set version stable current +SiSU_version_next_unstable = '6.2.3' #% set version unstable dev #% rake file SiSU_version_generic_next_stable = '5.4.x' SiSU_version_generic_next_unstable = '6.0.x' @@ -148,7 +148,7 @@ module Utils resp='redo' print ask + " ['yes', 'no' or 'quit']: " resp=File.new('/dev/tty').gets.strip #resp=gets.strip - if resp == 'yes' then true + if resp == 'yes' then true elsif resp == 'no' then false elsif resp =~/^quit|exit$/ then exit else puts "[please type: 'yes', 'no' or 'quit']" @@ -333,6 +333,46 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_#{vi[:version]}.orig.tar.xz 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 @@ -504,6 +544,7 @@ 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" @@ -690,6 +731,29 @@ desc 'Help' #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='' |