#!/usr/bin/env ruby
=begin
** Description:
** Homepage: <http://www.jus.uio.no/sisu/SiSU>
<http://search.sisudoc.org>
** Download: <http://www.jus.uio.no/sisu/download>
** Copyright: (C) 2015 Ralph Amissah
** License:
** Ralph Amissah <ralph@amissah.com>
Ralph Amissah <ralph.amissah@gmail.com>
=end
#% 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 --dryrun',
'setup sisu'
options \
:all => :boolean,
:bin => :boolean,
:lib => :boolean,
:conf => :boolean,
:data => :boolean,
:share => :boolean,
:man => :boolean,
:vim => :boolean,
:alt => :boolean,
:dryrun => :boolean,
:is => :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
act=(options[:dryrun]) ? (:dryrun) : (:action)
if options[:is]
puts Version_info.version_number_info_stable
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,
act
) if File.directory?('bin')
end
if options[:all] \
or options[:lib]
Install.setup_find_create(
'lib',
Project_details.dir.lib,
act
) if File.directory?('lib')
end
if options[:all] \
or options[:conf]
Install.setup_find_create(
'conf',
Project_details.dir.conf,
act
) if File.directory?('conf')
end
if options[:all] \
or options[:data]
Install.setup_find_create(
'data',
Project_details.dir.data,
act
) if File.directory?('data')
end
if options[:all] \
or options[:share]
Install.setup_find_create(
'data/sisu',
Project_details.dir.share,
act
) if File.directory?('data/sisu')
end
if options[:all] \
or options[:man]
Install.setup_find_create(
'man',
Project_details.dir.man,
act
) if File.directory?('man')
end
if options[:all] \
or options[:vim]
Install.setup_find_create(
'data/vim',
Project_details.dir.vim,
act
) if File.directory?('data/vim')
end
else
if options[:all] \
or options[:bin]
Install.setup_find_cp_r(
'bin',
Project_details.dir.bin,
act
) if File.directory?('bin')
end
if options[:all] \
or options[:bin]
Install.setup_find_cp_r(
'lib',
Project_details.dir.lib,
act
) if File.directory?('lib')
end
if options[:all] \
or options[:conf]
Install.setup_find_cp_r(
'conf',
Project_details.dir.conf,
act
) if File.directory?('conf')
end
if options[:all] \
or options[:data]
Install.setup_find_cp_r(
'data',
Project_details.dir.data,
act
) if File.directory?('data')
end
if options[:all] \
or options[:share]
Install.setup_find_cp_r(
'data/sisu',
Project_details.dir.share,
act
) if File.directory?('data/sisu') #
end
if options[:all] \
or options[:man]
Install.setup_find_cp_r(
'man',
Project_details.dir.man,
act
) 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 'pkg',
'package maintenance tasks, ' \
+ 'of no general interest ' \
+ '(maintainer specific for package maintainer\'s convenience)'
options \
:open_version=> :boolean,
:version_and_tag_for_release=> :boolean,
:tip => :boolean,
:is => :boolean
def pkg
if options[:is]
puts Version_info.version_number_info_stable
end
if options[:tip]
Package.sequence
end
if options[:open_version]
Version_info::Update.update_documentation
Version_info::Update.update_stable(:pre_release)
Version_info::Update.update_pkgbuild_stable(:pre_release)
Version_info::Update.changelog_header_stable_pre_release
Version_info::Update.changelog_header_commit(:pre_release)
end
if options[:version_and_tag_for_release]
Version_info::Update.update_documentation
Version_info::Update.update_stable(:release)
Version_info::Update.update_pkgbuild_stable(:release)
Version_info::Update.changelog_header_stable
Version_info::Update.changelog_header_commit_tag_upstream(:release)
end
if options.length == 0
system("#{$called_as} help pkg")
system("#{$called_as} pkg --tip")
end
end
desc 'gem --create --build --install',
'gem create build and install'
options \
:create => :boolean,
:build => :boolean,
:install => :boolean,
:git_version_number => :boolean,
:is => :boolean
def gem
if options[:is]
puts Version_info.version_number_info_stable
end
if options[:create]
version=(options[:git_version_number]) \
? :version_git
: :version_standard
Gemspecs::Current.create_stable(version)
puts 'created gemspec' \
if options[:verbose]
end
if options[:build]
Gemspecs::Current.build_stable
puts 'built gem' \
if options[:verbose]
end
if options[:install]
version=(options[:git_version_number]) \
? :version_git
: :version_standard
Gemspecs::Current.install_stable(version)
puts 'installed gem, version: stable' \
if options[:verbose]
end
unless options.length > 0
system("#{$called_as} help gem")
end
end
end
end
begin
$called_as,$argv=$0,$*
SiSUconf::Configure.start(ARGV)
rescue
end
__END__