#!/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) begin require 'thor' rescue LoadError puts 'thor (package ruby-thor) not found' end begin require './setup/sisu_version' # ./setup/sisu_version.rb include SiSUversion rescue LoadError puts 'this does not appear to be a SiSU development directory' exit end require_relative 'setup/qi_libs' # setup/qi_libs.rb require 'find' require 'fileutils' include FileUtils require 'pathname' require 'rbconfig.rb' require 'yaml' module SiSUconf class Configure < Thor class_option :verbose, :type => :boolean desc 'setup --all --bin --lib --conf --data --alt', 'setup sisu' options \ :all => :boolean, :bin => :boolean, :lib => :boolean, :conf => :boolean, :data => :boolean, :share => :boolean, :man => :boolean, :vim => :boolean, :alt => :boolean def setup unless options.length >= 1 \ and not (options[:bin] \ or options[:lib] \ or options[:conf] \ or options[:data] \ or options[:share] \ or options[:man] \ or options[:vim]) puts 'setup --all --bin --lib --conf --data --share --man --vim' end if not options[:alt] if options[:all] \ or options[:bin] exclude_files=['sisugem'] Install.setup_find_create('bin',Project_details.dir.bin,exclude_files) \ if File.directory?('bin') end if options[:all] \ or options[:lib] Install.setup_find_create('lib',Project_details.dir.lib) \ if File.directory?('lib') end if options[:all] \ or options[:conf] Install.setup_find_create('conf',Project_details.dir.conf) \ if File.directory?('conf') end if options[:all] \ or options[:data] Install.setup_find_create('data',Project_details.dir.data) \ if File.directory?('data') end if options[:all] \ or options[:share] Install.setup_find_create('data/sisu',Project_details.dir.share) \ if File.directory?('data/sisu') end if options[:all] \ or options[:man] Install.setup_find_create('man',Project_details.dir.man) \ if File.directory?('man') end if options[:all] \ or options[:vim] Install.setup_find_create('data/vim',Project_details.dir.vim) \ if File.directory?('data/vim') end else if options[:all] \ or options[:bin] Install.setup_find_cp_r('bin',Project_details.dir.bin) \ if File.directory?('bin') end if options[:all] \ or options[:bin] Install.setup_find_cp_r('lib',Project_details.dir.lib) \ if File.directory?('lib') end if options[:all] \ or options[:conf] Install.setup_find_cp_r('conf',Project_details.dir.conf) \ if File.directory?('conf') end if options[:all] \ or options[:data] Install.setup_find_cp_r('data',Project_details.dir.data) \ if File.directory?('data') end if options[:all] \ or options[:share] Install.setup_find_cp_r('data/sisu',Project_details.dir.share) \ if File.directory?('data/sisu') # end if options[:all] \ or options[:man] Install.setup_find_cp_r('man',Project_details.dir.man) \ if File.directory?('man') end #if options[:all] \ #or options[:vim] # Install.setup_find_cp_r('data/vim',"#{Project_details.dir.data}/vim") \ # if File.directory?('data/vim') #end end end desc 'gem --create --build --install --stable --unstable', 'gem create build and install' options \ :stable => :boolean, :unstable => :boolean, :create => :boolean, :build => :boolean, :install => :boolean def gem if options[:unstable] if options[:create] Gemspecs::Current.create_unstable #Gemspecs::Next.create_unstable puts 'created gemspec, version: unstable' \ if options[:verbose] end if options[:build] Gemspecs::Current.build_unstable #Gemspecs::Next.build_unstable puts 'built gem, version: unstable' \ if options[:verbose] end if options[:install] Gemspecs::Current.install_unstable #Gemspecs::Next.install_unstable puts 'installed gem, version: unstable' \ if options[:verbose] end end if options[:stable] \ or not options[:unstable] if options[:create] Gemspecs::Current.create_stable #Gemspecs::Current.create_unstable puts 'created gemspec, version: stable' \ if options[:verbose] end if options[:build] Gemspecs::Current.build_stable #Gemspecs::Next.build_stable puts 'built gem, version: stable' \ if options[:verbose] end if options[:install] Gemspecs::Current.install_stable #Gemspecs::Next.install_stable puts 'installed gem, version: stable' \ if options[:verbose] end end if options.length < 2 system("#{$called_as} help gem") end end desc 'pkg', 'package maintenance tasks, of no general interest (maintainer specific for package maintainer\'s convenience)' options \ :update_version=> :boolean, :tip => :boolean def pkg if options[:tip] Package.sequence end if options[:update_version] Version_info::Update.update_stable Version_info::Update.update_unstable puts "\n" + Version_info::Update.changelog_header_stable puts "\n" + Version_info::Update.changelog_header_unstable end if options.length == 0 system("#{$called_as} help pkg") system("#{$called_as} pkg --tip") end end end end begin $called_as,$argv=$0,$* SiSUconf::Configure.start(ARGV) rescue end __END__