build-tool 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/History.txt +28 -1
- data/Manifest.txt +91 -52
- data/README.txt +63 -0
- data/Rakefile +20 -23
- data/bin/build-tool +53 -0
- data/lib/build-tool.rb +7 -0
- data/lib/build-tool/GUI.rb +360 -0
- data/lib/build-tool/application.rb +84 -0
- data/lib/build-tool/build-system/autoconf.rb +60 -0
- data/lib/build-tool/build-system/base.rb +142 -0
- data/lib/build-tool/build-system/cmake.rb +119 -0
- data/lib/build-tool/build-system/custom.rb +115 -0
- data/lib/build-tool/build-system/qt.rb +113 -0
- data/lib/build-tool/cfg/lexer.rb +558 -0
- data/lib/build-tool/cfg/lexer.rex +248 -0
- data/lib/build-tool/cfg/lexer_base.rb +82 -0
- data/lib/build-tool/cfg/node.rb +94 -0
- data/lib/build-tool/cfg/parser.rb +871 -0
- data/lib/build-tool/cfg/parser.y +279 -0
- data/lib/build-tool/cfg/visitor.rb +471 -0
- data/lib/build-tool/commands.rb +639 -0
- data/lib/build-tool/commands/build.rb +120 -0
- data/lib/build-tool/commands/configure.rb +73 -0
- data/lib/build-tool/commands/ctags.rb +46 -0
- data/lib/build-tool/commands/environments.rb +29 -0
- data/lib/build-tool/commands/environments/list.rb +37 -0
- data/lib/build-tool/commands/environments/set.rb +33 -0
- data/lib/build-tool/commands/fetch.rb +50 -0
- data/lib/build-tool/commands/files.rb +73 -0
- data/lib/build-tool/commands/help.rb +22 -0
- data/lib/build-tool/commands/info.rb +48 -0
- data/lib/build-tool/commands/install.rb +56 -0
- data/lib/build-tool/commands/modules.rb +29 -0
- data/lib/build-tool/commands/modules/info.rb +75 -0
- data/lib/build-tool/commands/modules/list.rb +49 -0
- data/lib/build-tool/commands/modules/shell.rb +40 -0
- data/lib/build-tool/commands/rebase.rb +46 -0
- data/lib/build-tool/commands/recipes.rb +32 -0
- data/lib/build-tool/commands/recipes/info.rb +46 -0
- data/lib/build-tool/commands/recipes/install.rb +184 -0
- data/lib/build-tool/commands/recipes/list.rb +33 -0
- data/lib/build-tool/configuration.rb +115 -0
- data/lib/build-tool/environment.rb +119 -0
- data/lib/build-tool/errors.rb +9 -0
- data/lib/build-tool/module.rb +366 -0
- data/lib/build-tool/pluginbase.rb +43 -0
- data/lib/build-tool/recipe.rb +180 -0
- data/lib/build-tool/repository.rb +59 -0
- data/lib/build-tool/server.rb +43 -0
- data/lib/build-tool/singleton.rb +50 -0
- data/lib/build-tool/sshkey.rb +22 -0
- data/lib/build-tool/vcs/base.rb +105 -0
- data/lib/build-tool/vcs/git-svn.rb +154 -0
- data/lib/build-tool/vcs/git.rb +187 -0
- data/lib/build-tool/vcs/svn.rb +136 -0
- data/lib/mj/logging.rb +31 -0
- data/lib/mj/tools/ssh.rb +64 -0
- data/lib/{kde-build → mj/tools}/subprocess.rb +21 -16
- data/lib/mj/visitor.rb +21 -0
- data/recipes/kde/files/finish_installation.sh +16 -0
- data/recipes/kde/files/kde4.desktop +22 -0
- data/recipes/kde/files/xsession +89 -0
- data/recipes/kde/info.yaml +10 -0
- data/recipes/kde/recipe +585 -0
- data/recipes/kde/recipe-local +90 -0
- data/recipes/kde/settings.yaml +52 -0
- data/recipes/kde43/info.yaml +10 -0
- data/recipes/kde43/recipe +256 -0
- data/recipes/kde43/recipe-local +90 -0
- data/recipes/kde43/settings.yaml +32 -0
- data/recipes/kdeqt4.6/custom/qt/qtscriptgenerator/compile.sh +77 -0
- data/recipes/kdeqt4.6/custom/qt/qtscriptgenerator/configure.sh +70 -0
- data/recipes/kdeqt4.6/custom/qt/qtscriptgenerator/install.sh +39 -0
- data/recipes/kdeqt4.6/info.yaml +7 -0
- data/recipes/kdeqt4.6/recipe +155 -0
- data/recipes/kdeqt4.6/recipe-local +30 -0
- data/recipes/kdeqt4.6/settings.yaml +27 -0
- data/tags +745 -0
- data/tasks/genfiles.rake +28 -0
- data/tasks/rdoc.rake +34 -0
- data/tasks/rspec.rake +21 -0
- data/test.rb +28 -0
- data/test/commands/test_build.rb +29 -0
- data/test/test_build_system.rb +98 -0
- data/test/test_cli.rb +61 -0
- data/test/test_command.rb +175 -0
- data/test/test_configuration_parser.rb +542 -0
- data/test/test_environment.rb +82 -0
- data/test/test_helper.rb +39 -7
- data/test/test_module.rb +158 -0
- data/test/test_repository.rb +75 -0
- data/test/test_singleton.rb +51 -0
- data/test/test_ssh_key.rb +14 -0
- data/test/test_svn_parser.rb +28 -0
- data/test/test_vcs.rb +33 -0
- metadata +139 -90
- metadata.gz.sig +0 -0
- data/PostInstall.txt +0 -3
- data/TODO +0 -2
- data/bin/kde-build.rb +0 -21
- data/config/website.yml +0 -2
- data/config/website.yml.sample +0 -2
- data/lib/kde-build.rb +0 -18
- data/lib/kde-build/application.rb +0 -270
- data/lib/kde-build/build_system.rb +0 -28
- data/lib/kde-build/build_system/autoconf.rb +0 -108
- data/lib/kde-build/build_system/base.rb +0 -139
- data/lib/kde-build/build_system/cmake.rb +0 -94
- data/lib/kde-build/build_system/qtcopy.rb +0 -127
- data/lib/kde-build/command.rb +0 -42
- data/lib/kde-build/command/build.rb +0 -106
- data/lib/kde-build/command/compile.rb +0 -39
- data/lib/kde-build/command/configure.rb +0 -48
- data/lib/kde-build/command/ctags.rb +0 -41
- data/lib/kde-build/command/fetch.rb +0 -33
- data/lib/kde-build/command/help.rb +0 -71
- data/lib/kde-build/command/info.rb +0 -45
- data/lib/kde-build/command/install.rb +0 -39
- data/lib/kde-build/command/module_based.rb +0 -44
- data/lib/kde-build/command/rebase.rb +0 -50
- data/lib/kde-build/command/version.rb +0 -43
- data/lib/kde-build/configuration.rb +0 -209
- data/lib/kde-build/exception.rb +0 -6
- data/lib/kde-build/metaaid.rb +0 -18
- data/lib/kde-build/module.rb +0 -227
- data/lib/kde-build/module_configuration.rb +0 -107
- data/lib/kde-build/moduleregistry.rb +0 -85
- data/lib/kde-build/tools/ctags.rb +0 -59
- data/lib/kde-build/tools/logging.rb +0 -49
- data/lib/kde-build/tools/make.rb +0 -58
- data/lib/kde-build/tools/ssh.rb +0 -47
- data/lib/kde-build/vcs.rb +0 -28
- data/lib/kde-build/vcs/base.rb +0 -85
- data/lib/kde-build/vcs/git-svn.rb +0 -139
- data/lib/kde-build/vcs/git.rb +0 -121
- data/lib/kde-build/vcs/svn.rb +0 -102
- data/script/console +0 -10
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/script/txt2html +0 -71
- data/test.yaml.tmpl +0 -632
- data/test/test_kde-build.rb +0 -11
- data/test/test_vcs_svn.rb +0 -44
- data/website/index.html +0 -84
- data/website/index.txt +0 -59
- data/website/javascripts/rounded_corners_lite.inc.js +0 -285
- data/website/stylesheets/screen.css +0 -159
- data/website/template.html.erb +0 -50
@@ -1,107 +0,0 @@
|
|
1
|
-
require 'kde-build/configuration'
|
2
|
-
require 'kde-build/build_system'
|
3
|
-
require 'kde-build/module'
|
4
|
-
require 'kde-build/moduleregistry.rb'
|
5
|
-
require 'kde-build/vcs'
|
6
|
-
|
7
|
-
require 'yaml'
|
8
|
-
|
9
|
-
module BuildTool
|
10
|
-
|
11
|
-
class ModuleConfiguration
|
12
|
-
|
13
|
-
include MJ::Configuration::Configurable
|
14
|
-
|
15
|
-
option( "repository", "Remote repository url" ).
|
16
|
-
required
|
17
|
-
|
18
|
-
option( "ssh-key", "ssh-key for the repository" )
|
19
|
-
option( "ssh-file", "ssh-file for the repository" )
|
20
|
-
|
21
|
-
option( "name", "Name of the module" ).
|
22
|
-
required
|
23
|
-
|
24
|
-
option( "vcs", "VCS used for the module. # TODO" ).
|
25
|
-
on_write {
|
26
|
-
|val|
|
27
|
-
if val.instance_of?( String )
|
28
|
-
val = VCS::get( val ).config.new
|
29
|
-
elsif val.instance_of?( Array )
|
30
|
-
a = val.inject([]) {
|
31
|
-
|arr, v|
|
32
|
-
v.each_pair {
|
33
|
-
|val, key|
|
34
|
-
arr << val << key
|
35
|
-
}
|
36
|
-
arr
|
37
|
-
}
|
38
|
-
a = Hash[*a]
|
39
|
-
val = VCS::get(a['name']).config.new
|
40
|
-
val.parse(a)
|
41
|
-
else
|
42
|
-
raise Exception, "Don't know how to handle #{val.inspect}"
|
43
|
-
end
|
44
|
-
val
|
45
|
-
}
|
46
|
-
|
47
|
-
option( "build-system", "Build System" ).
|
48
|
-
on_write {
|
49
|
-
|val|
|
50
|
-
if val.instance_of?( String )
|
51
|
-
val = BuildSystem::get( val ).config.new
|
52
|
-
elsif val.instance_of?( Array )
|
53
|
-
a = val.inject([]) {
|
54
|
-
|arr, v|
|
55
|
-
v.each_pair {
|
56
|
-
|val, key|
|
57
|
-
arr << val << key
|
58
|
-
}
|
59
|
-
arr
|
60
|
-
}
|
61
|
-
a = Hash[*a]
|
62
|
-
val = BuildSystem::get(a['name']).config.new
|
63
|
-
val.parse(a)
|
64
|
-
else
|
65
|
-
raise Exception, "FIXME"
|
66
|
-
end
|
67
|
-
val
|
68
|
-
}
|
69
|
-
|
70
|
-
option( "env", "Environment Settings" ).
|
71
|
-
on_write { |val|
|
72
|
-
h = Hash.new
|
73
|
-
MJ::Configuration::flatten_values val do
|
74
|
-
|k, v|
|
75
|
-
h[k] = v
|
76
|
-
end
|
77
|
-
h
|
78
|
-
}
|
79
|
-
|
80
|
-
option( "local-path", "Local path to build. Relative to <stage>/src" )
|
81
|
-
|
82
|
-
option( "remote-path", "Path to fetch from. Relative to <repository>" ).
|
83
|
-
required
|
84
|
-
|
85
|
-
option( "prefix", "Installation Directory" ).
|
86
|
-
required
|
87
|
-
|
88
|
-
def to_s
|
89
|
-
self.name
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
|
94
|
-
YAML.add_domain_type(
|
95
|
-
"michael-jansen.biz,2009", "ModuleConfiguration" ) {
|
96
|
-
|type, val|
|
97
|
-
mc = ModuleConfiguration.new
|
98
|
-
MJ::Configuration::flatten_values val do
|
99
|
-
|k, v|
|
100
|
-
mc.set( k, v )
|
101
|
-
end
|
102
|
-
mc.validate
|
103
|
-
ModuleRegistry.instance.register_module( Module.new( mc ) )
|
104
|
-
mc
|
105
|
-
}
|
106
|
-
|
107
|
-
end
|
@@ -1,85 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
require 'singleton'
|
4
|
-
|
5
|
-
module BuildTool
|
6
|
-
|
7
|
-
class ConfigurationError < Exception
|
8
|
-
end
|
9
|
-
|
10
|
-
class ModuleRegistry
|
11
|
-
|
12
|
-
include Singleton
|
13
|
-
|
14
|
-
include MJ::Configuration::Configurable
|
15
|
-
|
16
|
-
include Singleton
|
17
|
-
|
18
|
-
@@packages = {}
|
19
|
-
def set( name, string )
|
20
|
-
@@packages[name] = string.to_s.split( / */ )
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.resolve_package( string, &block )
|
24
|
-
name = string[1..-1]
|
25
|
-
if @@packages.has_key? name
|
26
|
-
return self.get_modules( @@packages[name], &block )
|
27
|
-
else
|
28
|
-
$log.error( "Unknown package #{string}" )
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
@@modules = []
|
33
|
-
|
34
|
-
def register_module( mod )
|
35
|
-
if self.class.module_by_name mod.name
|
36
|
-
raise ConfigurationError, "Two configurations for #{mod.name} found"
|
37
|
-
end
|
38
|
-
@@modules.push( [mod.name ,mod] )
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.module_by_name( name )
|
42
|
-
@@modules.each do |v|
|
43
|
-
if v[0] == name
|
44
|
-
return v[1]
|
45
|
-
end
|
46
|
-
end
|
47
|
-
nil
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
def self.get_modules( args, &block )
|
52
|
-
if args.instance_of?( String )
|
53
|
-
if args[0,1] == ':'
|
54
|
-
self.resolve_package( args, &block )
|
55
|
-
# Check if we have a exact match
|
56
|
-
elsif mod = module_by_name(args)
|
57
|
-
yield mod
|
58
|
-
elsif args[-1,1] == '/'
|
59
|
-
found = false
|
60
|
-
@@modules.select{ |a| a[0].index(args) == 0}.each do |a|
|
61
|
-
found = true
|
62
|
-
yield a[1]
|
63
|
-
end
|
64
|
-
$log.error( "Unknown module #{args}" ) if !found
|
65
|
-
else
|
66
|
-
$log.error( "Unknown module #{args}" )
|
67
|
-
end
|
68
|
-
elsif args.instance_of?( Array )
|
69
|
-
args.map { |arg| get_modules( arg, &block ) }
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
|
-
YAML.add_domain_type(
|
76
|
-
"michael-jansen.biz,2009", "Packages" ) {
|
77
|
-
|type, val|
|
78
|
-
mr = ModuleRegistry.instance
|
79
|
-
MJ::Configuration::flatten_values val do
|
80
|
-
|k, v|
|
81
|
-
mr.set( k, v )
|
82
|
-
end
|
83
|
-
}
|
84
|
-
|
85
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'kde-build/configuration'
|
2
|
-
require 'kde-build/subprocess'
|
3
|
-
|
4
|
-
require 'singleton'
|
5
|
-
require 'yaml'
|
6
|
-
|
7
|
-
module BuildTool
|
8
|
-
|
9
|
-
class CTagsConfiguration
|
10
|
-
|
11
|
-
include MJ::Configuration::Configurable
|
12
|
-
|
13
|
-
include Singleton
|
14
|
-
|
15
|
-
option( "executable", "Full path for to the executable" )
|
16
|
-
option( "options", "" )
|
17
|
-
option( "output", "" )
|
18
|
-
|
19
|
-
def initialize
|
20
|
-
@executable = "ctags"
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
|
26
|
-
class CTags
|
27
|
-
|
28
|
-
include MJ::Tools::SubProcess
|
29
|
-
|
30
|
-
def self.run( dir, file )
|
31
|
-
file = file.tr( "/", "-" )
|
32
|
-
conf = CTagsConfiguration::instance
|
33
|
-
if !conf.output
|
34
|
-
$log.error("No ctags configuration section found!")
|
35
|
-
return
|
36
|
-
else
|
37
|
-
FileUtils.mkdir_p( Pathname.new( conf.output ).expand_path )
|
38
|
-
end
|
39
|
-
ctags "#{conf.options ? conf.options : ""} -f #{Pathname.new( conf.output ).join( file )} -R #{dir}"
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.ctags( cmd )
|
43
|
-
conf = CTagsConfiguration::instance
|
44
|
-
execute( "#{conf.executable ? conf.executable : "ctags"} #{cmd}" )
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
YAML.add_domain_type(
|
50
|
-
"michael-jansen.biz,2009", "CTagsConfiguration" ) {
|
51
|
-
|type, val|
|
52
|
-
cc = CTagsConfiguration.instance
|
53
|
-
MJ::Configuration::flatten_values val do
|
54
|
-
|k, v|
|
55
|
-
cc.set( k, v )
|
56
|
-
end
|
57
|
-
}
|
58
|
-
|
59
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
require 'log4r'
|
2
|
-
|
3
|
-
class Object
|
4
|
-
|
5
|
-
def while_logging_to( dir, fname, &block )
|
6
|
-
if logdir = BuildTool::Application::instance.log_directory
|
7
|
-
dirname = "#{logdir}/#{dir}"
|
8
|
-
FileUtils.mkdir_p( dirname )
|
9
|
-
with_warnings_suppressed do
|
10
|
-
$log.add( FileOutputter.new( fname, :filename => "#{dirname}/#{fname}", :level => DEBUG ) )
|
11
|
-
Outputter[fname].formatter = BuildTool::CmdFormatter.new
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
begin
|
16
|
-
yield
|
17
|
-
rescue Exception => e
|
18
|
-
$log.info("More information in #{dirname}/#{fname}")
|
19
|
-
raise e
|
20
|
-
ensure
|
21
|
-
if logdir
|
22
|
-
with_warnings_suppressed do
|
23
|
-
$log.remove( fname )
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
module BuildTool
|
32
|
-
|
33
|
-
class PlainFormatter < Log4r::Formatter
|
34
|
-
def format(event)
|
35
|
-
sprintf("%s\n", event.data)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
class CmdFormatter < Log4r::Formatter
|
40
|
-
def format(event)
|
41
|
-
if event.level != CMDOUT
|
42
|
-
sprintf("%*s %s> %s\n", MaxLevelLength, LNAMES[event.level],
|
43
|
-
event.name, event.data)
|
44
|
-
else
|
45
|
-
sprintf("%s\n", event.data)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
data/lib/kde-build/tools/make.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
require 'kde-build/configuration.rb'
|
2
|
-
|
3
|
-
require 'yaml'
|
4
|
-
require 'singleton'
|
5
|
-
|
6
|
-
module BuildTool
|
7
|
-
|
8
|
-
class MakeConfiguration
|
9
|
-
|
10
|
-
include Singleton
|
11
|
-
|
12
|
-
include MJ::Configuration::Configurable
|
13
|
-
|
14
|
-
option( "executable", "Full path for to the executable" ).
|
15
|
-
required
|
16
|
-
option( "options", "TODO" )
|
17
|
-
option( "cxxflags", "TODO" )
|
18
|
-
|
19
|
-
def initialize
|
20
|
-
self.executable = "make"
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
|
26
|
-
class Make
|
27
|
-
|
28
|
-
include MJ::Tools::SubProcess
|
29
|
-
|
30
|
-
def make( command, wd = build_directory )
|
31
|
-
self.class.execute "#{executable} #{cxxflags} #{options} #{command}", wd
|
32
|
-
end
|
33
|
-
|
34
|
-
def options
|
35
|
-
MakeConfiguration.instance.options
|
36
|
-
end
|
37
|
-
|
38
|
-
def cxxflags
|
39
|
-
MakeConfiguration.instance.cxxflags
|
40
|
-
end
|
41
|
-
|
42
|
-
def executable
|
43
|
-
MakeConfiguration.instance.executable
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
|
48
|
-
YAML.add_domain_type(
|
49
|
-
"michael-jansen.biz,2009", "MakeConfiguration" ) {
|
50
|
-
|type, val|
|
51
|
-
mc = MakeConfiguration.instance
|
52
|
-
MJ::Configuration::flatten_values val do
|
53
|
-
|k, v|
|
54
|
-
mc.set( k, v )
|
55
|
-
end
|
56
|
-
}
|
57
|
-
|
58
|
-
end
|
data/lib/kde-build/tools/ssh.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'kde-build/subprocess'
|
2
|
-
|
3
|
-
module MJ; module Tools
|
4
|
-
|
5
|
-
class SSH
|
6
|
-
|
7
|
-
include MJ::Tools::SubProcess
|
8
|
-
|
9
|
-
def add_key( key_file )
|
10
|
-
ssh_add( "#{key_file}" )
|
11
|
-
end
|
12
|
-
|
13
|
-
def has_key?( key )
|
14
|
-
found = false
|
15
|
-
ssh_add '-l' do
|
16
|
-
|line|
|
17
|
-
if line.index(key) == 0
|
18
|
-
return found = true
|
19
|
-
end
|
20
|
-
end
|
21
|
-
return found
|
22
|
-
end
|
23
|
-
|
24
|
-
def remove_key( key_file )
|
25
|
-
ssh_add( "-d #{key_file}" )
|
26
|
-
end
|
27
|
-
|
28
|
-
def remove_all_keys
|
29
|
-
ssh_add( "-D" )
|
30
|
-
end
|
31
|
-
|
32
|
-
def list_keys
|
33
|
-
ssh_add( "-l" )
|
34
|
-
end
|
35
|
-
|
36
|
-
def ssh_add( command, &block )
|
37
|
-
if block_given?
|
38
|
-
self.class.execute "ssh-add #{command}", &block
|
39
|
-
else
|
40
|
-
self.class.execute "ssh-add #{command}"
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
end
|
45
|
-
|
46
|
-
end; end
|
47
|
-
|
data/lib/kde-build/vcs.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
require 'kde-build/vcs/git'
|
2
|
-
require 'kde-build/vcs/git-svn'
|
3
|
-
require 'kde-build/vcs/svn'
|
4
|
-
|
5
|
-
module BuildTool; module VCS
|
6
|
-
|
7
|
-
@mapping = {
|
8
|
-
'git-svn' => GitSVN,
|
9
|
-
'git' => Git,
|
10
|
-
'svn' => SVN
|
11
|
-
}
|
12
|
-
|
13
|
-
module_function
|
14
|
-
|
15
|
-
def available
|
16
|
-
@mapping.keys
|
17
|
-
end
|
18
|
-
|
19
|
-
class UnknownVcsError < Exception; end
|
20
|
-
|
21
|
-
def get( name )
|
22
|
-
if !available.include? name
|
23
|
-
raise VcsError, "VCS '#{name}' is not supported"
|
24
|
-
end
|
25
|
-
@mapping[name]
|
26
|
-
end
|
27
|
-
|
28
|
-
end; end
|
data/lib/kde-build/vcs/base.rb
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
require 'kde-build/configuration'
|
2
|
-
require 'kde-build/subprocess'
|
3
|
-
|
4
|
-
require 'fileutils'
|
5
|
-
|
6
|
-
module BuildTool; module VCS
|
7
|
-
|
8
|
-
class BuildToolError < Exception; end
|
9
|
-
|
10
|
-
|
11
|
-
class BaseConfiguration
|
12
|
-
|
13
|
-
include MJ::Configuration::Configurable
|
14
|
-
|
15
|
-
option( 'name', "Name" )
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
|
20
|
-
# Base class for all version control system implementations.
|
21
|
-
#
|
22
|
-
# This class is abstract. Most method just raise NotImplementedError
|
23
|
-
# exceptions.
|
24
|
-
class Base
|
25
|
-
|
26
|
-
include MJ::Tools::SubProcess
|
27
|
-
|
28
|
-
attr_accessor :repository, :path
|
29
|
-
attr_accessor :configuration
|
30
|
-
|
31
|
-
|
32
|
-
# Creates a new vcs module. Stores +repository+ and +path+
|
33
|
-
def initialize( repository, path = nil)
|
34
|
-
@repository = repository
|
35
|
-
@path = path
|
36
|
-
end
|
37
|
-
|
38
|
-
def info
|
39
|
-
puts "Version Control: #{name}"
|
40
|
-
end
|
41
|
-
|
42
|
-
# Check if the local checkout exists.
|
43
|
-
#
|
44
|
-
# This method only checks it the local checkout path exists and is
|
45
|
-
# a directory
|
46
|
-
def checkedout?
|
47
|
-
return ( File.exist?( self.path ) and File.directory?( path ) )
|
48
|
-
end
|
49
|
-
|
50
|
-
# Fetch the changes from the remote repository without changing
|
51
|
-
# code locally
|
52
|
-
#
|
53
|
-
# raises NotImplementedError
|
54
|
-
def fetch
|
55
|
-
raise NotImplementedError, "Base::fetch in #{self.class}"
|
56
|
-
end
|
57
|
-
|
58
|
-
# Initialize the local checkout
|
59
|
-
#
|
60
|
-
# raises NotImplementedError
|
61
|
-
def init
|
62
|
-
raise NotImplementedError, "Base::init in #{self.class}"
|
63
|
-
end
|
64
|
-
|
65
|
-
# Return the name for this version control system
|
66
|
-
#
|
67
|
-
# raises NotImplementedError
|
68
|
-
def name
|
69
|
-
raise NotImplementedError, "Base::name in #{self.class}"
|
70
|
-
end
|
71
|
-
|
72
|
-
# Rebase the local branch with the remote changes
|
73
|
-
#
|
74
|
-
# raises NotImplementedError
|
75
|
-
def rebase
|
76
|
-
raise NotImplementedError, "Base::rebase in #{self.class}"
|
77
|
-
end
|
78
|
-
|
79
|
-
def self.config
|
80
|
-
raise NotImplementedError, "Base::config in #{self}"
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
|
-
|
85
|
-
end; end
|