build-tool 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|