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
@@ -0,0 +1,136 @@
|
|
1
|
+
require 'build-tool/vcs/base'
|
2
|
+
|
3
|
+
module BuildTool; module VCS
|
4
|
+
|
5
|
+
class SvnConfiguration < BaseConfiguration
|
6
|
+
|
7
|
+
def name
|
8
|
+
"svn"
|
9
|
+
end
|
10
|
+
|
11
|
+
def vcs( mod )
|
12
|
+
@module = mod
|
13
|
+
Svn.new( self )
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
#
|
19
|
+
# Implementation for the subversion version control system.
|
20
|
+
#
|
21
|
+
class Svn < Base
|
22
|
+
|
23
|
+
class SvnError < BuildTool::Error; end
|
24
|
+
|
25
|
+
# def initialize( *args )
|
26
|
+
# super( *args )
|
27
|
+
# end
|
28
|
+
|
29
|
+
#
|
30
|
+
### ATTRIBUTES
|
31
|
+
#
|
32
|
+
def name
|
33
|
+
"svn"
|
34
|
+
end
|
35
|
+
|
36
|
+
def fetching_supported?
|
37
|
+
false
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
#
|
42
|
+
### METHODS
|
43
|
+
#
|
44
|
+
|
45
|
+
def checkedout?
|
46
|
+
return false if !local_path_exist?
|
47
|
+
if !File.exists? "#{local_path}/.svn"
|
48
|
+
$log.debug("Checkout path #{local_path} is not a svn repo")
|
49
|
+
return false
|
50
|
+
end
|
51
|
+
return true
|
52
|
+
end
|
53
|
+
|
54
|
+
# Initialize the local repository
|
55
|
+
def clone
|
56
|
+
# Check if local_path exists
|
57
|
+
if local_path_exist?
|
58
|
+
raise SvnError, "Failed to create repository at '#{local_path}': Path exists"
|
59
|
+
end
|
60
|
+
|
61
|
+
# Create the directories parent dir.
|
62
|
+
FileUtils.mkdir_p( File.dirname( local_path ) ) if !$noop
|
63
|
+
|
64
|
+
# Init the repository
|
65
|
+
svn "checkout --depth=infinity #{repository.url}/#{remote_path} #{local_path}", File.dirname(local_path)
|
66
|
+
end
|
67
|
+
|
68
|
+
def fetch()
|
69
|
+
if !checkedout?
|
70
|
+
clone
|
71
|
+
else
|
72
|
+
svn "update"
|
73
|
+
end
|
74
|
+
return true
|
75
|
+
end
|
76
|
+
|
77
|
+
# Returns the last changed revision on the remote repository.
|
78
|
+
# Return 0 if the last changed revision could not be determined.
|
79
|
+
def last_changed_rev
|
80
|
+
info = Hash.new
|
81
|
+
svn( "info #{repository.url}/#{remote_path}", nil ) {
|
82
|
+
|line|
|
83
|
+
key, value = line.chomp.split( ':', 2 )
|
84
|
+
info[key] = value
|
85
|
+
}
|
86
|
+
return 777777 if $noop
|
87
|
+
version = info["Last Changed Rev"];
|
88
|
+
raise SvnError, "Failed to determine revision for #{repository.url}/#{remote_path}" if version.nil?
|
89
|
+
return version
|
90
|
+
end
|
91
|
+
|
92
|
+
# Call svn with command
|
93
|
+
def svn( command, wd = local_path, &block )
|
94
|
+
self.class.svn( command, wd, &block )
|
95
|
+
end
|
96
|
+
|
97
|
+
def self.svn( command, wd, &block )
|
98
|
+
rc = self.execute( "svn " + command, wd, &block )
|
99
|
+
if rc != 0
|
100
|
+
raise SvnError, "Command 'svn #{command}' failed with error code #{rc}!"
|
101
|
+
end
|
102
|
+
rc
|
103
|
+
end
|
104
|
+
|
105
|
+
def rebase
|
106
|
+
# Rebasing is not supported
|
107
|
+
0
|
108
|
+
end
|
109
|
+
|
110
|
+
def[]( var )
|
111
|
+
case var
|
112
|
+
|
113
|
+
when nil
|
114
|
+
|
115
|
+
else
|
116
|
+
# *TODO* raise correct exception
|
117
|
+
raise NotImplementedError, "#{var}"
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
def[]=( var, val )
|
122
|
+
case var
|
123
|
+
|
124
|
+
when nil
|
125
|
+
|
126
|
+
else
|
127
|
+
# *TODO* raise correct exception
|
128
|
+
raise NotImplementedError, "#{var}"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end # class Svn
|
132
|
+
|
133
|
+
|
134
|
+
end; end # module BuildTool::VCS
|
135
|
+
|
136
|
+
|
data/lib/mj/logging.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
module MJ; module Logging;
|
2
|
+
|
3
|
+
#
|
4
|
+
# Basic Layout for the logging framework.
|
5
|
+
#
|
6
|
+
# Will prefix message according to the following list:
|
7
|
+
#
|
8
|
+
# WARNING => 'warning: '
|
9
|
+
# ERROR => 'error: '
|
10
|
+
# REST => ''
|
11
|
+
class BasicLayout < ::Logging::Layout
|
12
|
+
|
13
|
+
def format( event )
|
14
|
+
obj = format_obj(event.data)
|
15
|
+
|
16
|
+
return case event.level
|
17
|
+
|
18
|
+
when ::Logging::level_num(:ERROR)
|
19
|
+
sprintf("error: %s\n", obj)
|
20
|
+
|
21
|
+
when ::Logging::level_num(:WARN)
|
22
|
+
sprintf("warning: %s\n", obj)
|
23
|
+
|
24
|
+
else
|
25
|
+
obj + "\n"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end # class BasicLayout
|
30
|
+
|
31
|
+
end; end
|
data/lib/mj/tools/ssh.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'mj/tools/subprocess.rb'
|
2
|
+
|
3
|
+
module MJ; module Tools
|
4
|
+
|
5
|
+
class SSH
|
6
|
+
|
7
|
+
include MJ::Tools::SubProcess
|
8
|
+
|
9
|
+
@keys_added = []
|
10
|
+
|
11
|
+
def self.add_key( key_file )
|
12
|
+
if @keys_added.index( key_file )
|
13
|
+
return
|
14
|
+
end
|
15
|
+
if ssh_add( "#{key_file}" ) == 0
|
16
|
+
@keys_added << key_file
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.cleanup
|
21
|
+
@keys_added.each do |file|
|
22
|
+
self.remove_key( file )
|
23
|
+
end
|
24
|
+
@keys_added = []
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.has_key?( key_file )
|
28
|
+
if @keys_added.index( key_file )
|
29
|
+
return true
|
30
|
+
end
|
31
|
+
found = false
|
32
|
+
ssh_add '-l' do
|
33
|
+
|line|
|
34
|
+
if line.index(key_file)
|
35
|
+
return found = true
|
36
|
+
end
|
37
|
+
end
|
38
|
+
return found
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.remove_key( key_file )
|
42
|
+
ssh_add( "-d #{key_file}" )
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.remove_all_keys
|
46
|
+
ssh_add( "-D" )
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.list_keys
|
50
|
+
ssh_add( "-l" )
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.ssh_add( command, &block )
|
54
|
+
if block_given?
|
55
|
+
self.execute "ssh-add #{command}", &block
|
56
|
+
else
|
57
|
+
self.execute "ssh-add #{command}"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
end; end
|
64
|
+
|
@@ -2,15 +2,17 @@ module MJ; module Tools
|
|
2
2
|
|
3
3
|
module SubProcess
|
4
4
|
|
5
|
+
class CoreDumpError < StandardError; end
|
6
|
+
|
5
7
|
module ClassMethods
|
6
8
|
|
7
9
|
# Executes command
|
8
10
|
#
|
9
11
|
# Executes the given command and yields each line of output.
|
10
12
|
# Returns +$?+ .
|
11
|
-
def execute( command, wd =
|
13
|
+
def execute( command, wd = ENV["HOME"], env = nil )
|
12
14
|
cwd ||= Dir.getwd
|
13
|
-
|
15
|
+
logger.trace "(#{wd}) > #{command} 2>&1"
|
14
16
|
if !$noop
|
15
17
|
adjust_environment( wd, env ) {
|
16
18
|
IO.popen( "#{command} 2>&1" ) {
|
@@ -18,30 +20,31 @@ module MJ; module Tools
|
|
18
20
|
begin
|
19
21
|
while
|
20
22
|
line = f.readline
|
21
|
-
|
22
|
-
yield line if block_given?
|
23
|
+
logger.verbose line.chomp
|
24
|
+
yield line.chomp if block_given?
|
23
25
|
end
|
24
26
|
rescue EOFError:
|
25
27
|
# Expected. Do nothing
|
26
28
|
end
|
27
29
|
}
|
28
|
-
|
29
|
-
|
30
|
+
if $?.coredump? or $?.signaled?
|
31
|
+
raise CoreDumpError, "Command '#{command}' core dumped because of signal #{$?.termsig}!";
|
32
|
+
end
|
33
|
+
logger.trace "= #{$?.exitstatus}"
|
34
|
+
return $?.exitstatus
|
30
35
|
}
|
31
36
|
else
|
32
|
-
|
37
|
+
adjust_environment( wd, env ) {
|
38
|
+
logger.trace "= 0 # noop"
|
39
|
+
}
|
33
40
|
return 0
|
34
41
|
end
|
35
42
|
|
36
43
|
end
|
37
44
|
|
38
|
-
#########
|
39
|
-
protected
|
40
|
-
#########
|
41
|
-
|
42
45
|
# Helper method to adjust LANG to "C"
|
43
46
|
def adjust_environment( wd=nil, env=nil, lang="C" )
|
44
|
-
if wd
|
47
|
+
if wd and !$noop
|
45
48
|
cwd = Dir.getwd
|
46
49
|
Dir.chdir(wd)
|
47
50
|
end
|
@@ -50,7 +53,7 @@ module MJ; module Tools
|
|
50
53
|
if env
|
51
54
|
env.each do |var, value|
|
52
55
|
oldenv[var] = ENV[var]
|
53
|
-
|
56
|
+
logger.verbose "#{var} = #{value}"
|
54
57
|
ENV[var] = value
|
55
58
|
end
|
56
59
|
end
|
@@ -65,19 +68,21 @@ module MJ; module Tools
|
|
65
68
|
ENV[var] = value
|
66
69
|
end
|
67
70
|
# Reset the current working directory
|
68
|
-
if wd
|
71
|
+
if wd and !$noop
|
69
72
|
Dir.chdir(cwd)
|
70
73
|
end
|
71
74
|
end
|
72
75
|
end
|
73
76
|
|
77
|
+
#########
|
78
|
+
protected
|
79
|
+
#########
|
80
|
+
|
74
81
|
def self.included( klass )
|
75
82
|
klass.extend( ClassMethods )
|
76
83
|
end
|
77
84
|
|
78
|
-
|
79
85
|
end
|
80
86
|
|
81
|
-
|
82
87
|
end; end
|
83
88
|
|
data/lib/mj/visitor.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
module MJ;
|
2
|
+
|
3
|
+
class Visitable
|
4
|
+
|
5
|
+
def accept( visitor )
|
6
|
+
method_name = nil
|
7
|
+
klass = self.class.ancestors.find do |ancestor|
|
8
|
+
method_name = "visit_#{ancestor.name.split('::')[-1]}"
|
9
|
+
visitor.respond_to?( method_name )
|
10
|
+
end
|
11
|
+
|
12
|
+
if klass
|
13
|
+
return visitor.send( method_name, self )
|
14
|
+
else
|
15
|
+
raise "#{visitor.class}: Not a visitor for #{self.class}!"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
|
4
|
+
if test -e /etc/SuSE-brand; then
|
5
|
+
file="<%= settings['KDE_PREFIX'] %>/share/apps/kwrited"
|
6
|
+
if test -f $file; then
|
7
|
+
echo "sudo chown 0 $file && sudo chmod u+s $file"
|
8
|
+
sudo chown 0 $file && sudo chmod u+s $file
|
9
|
+
fi
|
10
|
+
|
11
|
+
file="<%= settings['KDE_PREFIX'] %>/lib<%= settings['LIB_SUFFIX'] %>/kde4/libexec/kcheckpass"
|
12
|
+
if test -f $file; then
|
13
|
+
echo "sudo chgrp shadow $file && sudo chmod g+s $file"
|
14
|
+
sudo chgrp shadow $file && sudo chmod g+s $file
|
15
|
+
fi
|
16
|
+
fi
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Standard sessions file
|
2
|
+
#
|
3
|
+
# This file is used to tell x display managers (xdm,gdm,kdm) how to start the
|
4
|
+
# kde session.
|
5
|
+
#
|
6
|
+
# Copy this file to /usr/share/xsession. You have to configure kdm to use this
|
7
|
+
# directory. See "<%= settings['KDE_PREFIX'] %>/share/config/kdm/kdmrc".
|
8
|
+
# Search for SessionsDirs.
|
9
|
+
#
|
10
|
+
# This script expects a script mystartkde. See "files xsession". When both are
|
11
|
+
# there a new session Type "KDE 4 Trunk" should be available from your X
|
12
|
+
# Display Manager.
|
13
|
+
[Desktop Entry]
|
14
|
+
X-SuSE-translate=true
|
15
|
+
Encoding=UTF-8
|
16
|
+
Type=XSession
|
17
|
+
Exec=<%= settings['KDE_PREFIX'] %>/bin/mystartkde
|
18
|
+
TryExec=<%= settings['KDE_PREFIX'] %>/bin/startkde
|
19
|
+
Name=KDE 4 Trunk (unstable)
|
20
|
+
Comment=KDE Desktop Environment 4 Trunk (unstable)
|
21
|
+
|
22
|
+
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# vim:ft=sh
|
2
|
+
# A script to start the kde workspace.
|
3
|
+
#
|
4
|
+
# You can use it in two ways. Just copy the content to the given path.
|
5
|
+
#
|
6
|
+
# 1. $HOME/.xsession
|
7
|
+
# ------------------
|
8
|
+
# Select "custom" session when logging in. This will use that script.
|
9
|
+
#
|
10
|
+
# 2. <%= settings['KDE_PREFIX'] %>/bin/mystartkde
|
11
|
+
# See "files xsession" on how to use that. Make sure the script is executable.
|
12
|
+
|
13
|
+
|
14
|
+
# Little helper function that adds to a path like environment variable. It
|
15
|
+
# checks if the path is already there before doing that.
|
16
|
+
function path_add
|
17
|
+
{
|
18
|
+
test -d $2 || return
|
19
|
+
|
20
|
+
case "x${!1}x" in
|
21
|
+
"xx")
|
22
|
+
eval "${1}"="$2"
|
23
|
+
;;
|
24
|
+
|
25
|
+
x*:$2:*x)
|
26
|
+
# Value already part of var.
|
27
|
+
;;
|
28
|
+
|
29
|
+
"x$2x")
|
30
|
+
# Value already part of var.
|
31
|
+
;;
|
32
|
+
|
33
|
+
x$2:*x)
|
34
|
+
# Value already part of var.
|
35
|
+
;;
|
36
|
+
|
37
|
+
x*:$2x)
|
38
|
+
# Value already part of var.
|
39
|
+
;;
|
40
|
+
|
41
|
+
*)
|
42
|
+
eval "${1}=$2:${!1}"
|
43
|
+
;;
|
44
|
+
esac;
|
45
|
+
}
|
46
|
+
|
47
|
+
# Initialize the vars from the setting file. This scripts is sourced after
|
48
|
+
# your shell login files (bash_profile, profile ...). We override any setting
|
49
|
+
# made there!
|
50
|
+
CMAKE_PREFIX_PATH="<%= settings['CMAKE_PREFIX_PATH'] %>"
|
51
|
+
unset KDEDIRS
|
52
|
+
LD_LIBRARY_PATH="<%= settings['LD_LIBRARY_PATH'] %>"
|
53
|
+
PATH="<%= settings['PATH'] %>"
|
54
|
+
PKG_CONFIG_PATH="<%= settings['PKG_CONFIG_PATH'] %>"
|
55
|
+
unset STRIGI_PLUGIN_PATH
|
56
|
+
XDG_DATA_DIRS="<%= settings['XDG_DATA_DIRS'] %>"
|
57
|
+
|
58
|
+
# Now add the necessary directories from the recipe. If they exist.
|
59
|
+
for path in "<%= settings['KOFFICE_PREFIX'] %>" "<%= settings['KDEDEVEL_PREFIX'] %>" "<%= settings['KDE_PREFIX'] %>" "<%= settings['KDESUPPORT_PREFIX'] %>" ; do
|
60
|
+
if test -d $path ; then
|
61
|
+
path_add "CMAKE_PREFIX_PATH" $path;
|
62
|
+
path_add "KDEDIRS" $path;
|
63
|
+
path_add "LD_LIBRARY_PATH" $path/lib<%= settings['LIB_SUFFIX'] %>
|
64
|
+
path_add "PATH" $path/bin;
|
65
|
+
path_add "PKG_CONFIG_PATH" $path/lib<%= settings['LIB_SUFFIX'] %>/pkgconfig;
|
66
|
+
path_add "STRIGI_PLUGIN_PATH" $path/lib<%= settings['LIB_SUFFIX'] %>/strigi;
|
67
|
+
path_add "XDG_DATA_DIRS" $path/share;
|
68
|
+
fi
|
69
|
+
done
|
70
|
+
|
71
|
+
# Export the variables.
|
72
|
+
export CMAKE_PREFIX_PATH
|
73
|
+
export KDEDIRS
|
74
|
+
export LD_LIBRARY_PATH
|
75
|
+
export PATH
|
76
|
+
export PKG_CONFIG_PATH
|
77
|
+
export STRIGI_PLUGIN_PATH
|
78
|
+
export XDG_DATA_DIRS
|
79
|
+
|
80
|
+
# Add $HOME/bin if it exists
|
81
|
+
path_add "PATH" "$HOME/bin"
|
82
|
+
path_add "PATH" "$HOME/local/bin"
|
83
|
+
|
84
|
+
# Now start the standard kde login script.
|
85
|
+
<%= settings['KDE_PREFIX'] %>/bin/startkde
|
86
|
+
|
87
|
+
# If you experience problems on logout it is sometimes helpful to make copies
|
88
|
+
# of the xsession-errors file on logout.
|
89
|
+
# cp $HOME/.xsession-errors $HOME/.xsession-errors-`date +"%Y%m%d%H%M"`
|