yggdrasil 0.0.5 → 0.0.6
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/README.md +1 -1
- data/lib/yggdrasil.rb +97 -113
- data/lib/yggdrasil/add.rb +1 -1
- data/lib/yggdrasil/check.rb +65 -0
- data/lib/yggdrasil/cleanup.rb +2 -2
- data/lib/yggdrasil/commit.rb +19 -5
- data/lib/yggdrasil/diff.rb +2 -3
- data/lib/yggdrasil/help.rb +87 -27
- data/lib/yggdrasil/init.rb +56 -20
- data/lib/yggdrasil/list.rb +2 -3
- data/lib/yggdrasil/log.rb +2 -2
- data/lib/yggdrasil/revert.rb +4 -4
- data/lib/yggdrasil/status.rb +2 -2
- data/lib/yggdrasil/update.rb +7 -5
- data/lib/yggdrasil/version.rb +3 -4
- data/lib/yggdrasil_common.rb +102 -0
- data/lib/yggdrasil_server.rb +77 -0
- data/lib/yggdrasil_server/get_repo.rb +6 -0
- data/lib/yggdrasil_server/get_ro_id_pw.rb +9 -0
- data/lib/yggdrasil_server/init_server.rb +62 -0
- data/lib/yggdrasil_server/put_result.rb +16 -0
- data/lib/yggdrasil_server/results.rb +30 -0
- data/spec/check_spec.rb +145 -0
- data/spec/commit_spec.rb +18 -2
- data/spec/help_spec.rb +83 -6
- data/spec/init_server_spec.rb +82 -0
- data/spec/init_spec.rb +46 -1
- data/spec/list_spec.rb +5 -1
- data/spec/results_spec.rb +66 -0
- data/spec/server_spec.rb +158 -0
- metadata +21 -5
data/lib/yggdrasil/diff.rb
CHANGED
@@ -5,8 +5,7 @@ class Yggdrasil
|
|
5
5
|
args = parse_options(args,
|
6
6
|
{'--username'=>:username, '--password'=>:password, '-r'=>:revision, '--revision'=>:revision})
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
get_user_pass_if_need_to_read_repo
|
10
9
|
sync_mirror
|
11
10
|
|
12
11
|
paths = Array.new
|
@@ -20,7 +19,7 @@ class Yggdrasil
|
|
20
19
|
end
|
21
20
|
|
22
21
|
cmd_arg = "#@svn diff --no-auth-cache --non-interactive"
|
23
|
-
cmd_arg +=
|
22
|
+
cmd_arg += username_password_options_to_read_repo
|
24
23
|
cmd_arg += " -r #{@options[:revision]}" if @options.has_key?(:revision)
|
25
24
|
cmd_arg += ' '+paths.join(' ')
|
26
25
|
FileUtils.cd @mirror_dir do
|
data/lib/yggdrasil/help.rb
CHANGED
@@ -1,33 +1,36 @@
|
|
1
1
|
class Yggdrasil
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
|
4
|
+
# @param [Array] args
|
5
|
+
def help(args)
|
6
|
+
if args.size == 0
|
7
|
+
puts <<EOS
|
8
|
+
usage: #@base_cmd <subcommand> [options] [args]
|
5
9
|
Yggdrasil version #{VERSION}
|
6
|
-
Type '
|
10
|
+
Type '#@base_cmd help <subcommand>' for help on a specific subcommand.
|
7
11
|
|
8
12
|
Available subcommands:
|
9
13
|
add
|
14
|
+
check (c)
|
10
15
|
cleanup
|
11
16
|
commit (ci)
|
12
17
|
diff (di)
|
13
18
|
help (?, h)
|
14
19
|
init
|
20
|
+
init-server
|
15
21
|
list (ls)
|
16
22
|
log
|
17
|
-
|
23
|
+
results
|
18
24
|
revert
|
25
|
+
server
|
26
|
+
status (stat, st)
|
19
27
|
update
|
20
28
|
version
|
21
29
|
|
22
|
-
Yggdrasil is a
|
30
|
+
Yggdrasil is a subversion wrapper to manage server configurations and conditions.
|
23
31
|
You should type 'yggdrasil init' at first.
|
24
32
|
|
25
33
|
EOS
|
26
|
-
|
27
|
-
# @param [Array] args
|
28
|
-
def Yggdrasil.help(args)
|
29
|
-
if args.size == 0 then
|
30
|
-
puts HELP_SUBCOMMANDS
|
31
34
|
elsif args.size != 1 then
|
32
35
|
error "too many arguments."
|
33
36
|
else
|
@@ -35,13 +38,31 @@ EOS
|
|
35
38
|
when 'add'
|
36
39
|
puts <<"EOS"
|
37
40
|
add: Add files to management list (add to subversion)
|
38
|
-
usage
|
41
|
+
usage #@base_cmd add [FILES...]
|
42
|
+
|
43
|
+
EOS
|
44
|
+
when 'check', 'c'
|
45
|
+
puts <<"EOS"
|
46
|
+
check (c): check updating of managed files and the execution output of a commands.
|
47
|
+
usage: #@base_cmd check [OPTIONS...]
|
48
|
+
|
49
|
+
This subcommand execute the executable files in ~/.yggdrasil/checker/, and
|
50
|
+
the outputs are checked difference to repository with other managed files.
|
51
|
+
For example, mount status, number of specific process and etc. can be checked
|
52
|
+
by setting up executable files in ~/.yggdrasil/checker/
|
53
|
+
|
54
|
+
if the server is registered, the yggdrasil server receive and record the results.
|
55
|
+
|
56
|
+
Valid options:
|
57
|
+
--username ARG : specify a username ARG
|
58
|
+
--password ARG : specify a password ARG
|
59
|
+
--non-interactive : do no interactive prompting
|
39
60
|
|
40
61
|
EOS
|
41
62
|
when 'cleanup'
|
42
63
|
puts <<"EOS"
|
43
64
|
cleanup: clean up the working copy
|
44
|
-
usage:
|
65
|
+
usage: #@base_cmd cleanup [OPTIONS...]
|
45
66
|
|
46
67
|
Valid options:
|
47
68
|
--username ARG : specify a username ARG
|
@@ -51,7 +72,7 @@ EOS
|
|
51
72
|
when 'commit', 'ci'
|
52
73
|
puts <<"EOS"
|
53
74
|
commit (ci): Send changes from your local file to the repository.
|
54
|
-
usage:
|
75
|
+
usage: #@base_cmd commit [OPTIONS...] [FILES...]
|
55
76
|
|
56
77
|
Valid options:
|
57
78
|
--username ARG : specify a username ARG
|
@@ -63,7 +84,7 @@ EOS
|
|
63
84
|
when 'diff', 'di'
|
64
85
|
puts <<"EOS"
|
65
86
|
diff (di): Display the differences between two revisions or paths.
|
66
|
-
usage:
|
87
|
+
usage: #@base_cmd diff [OPTIONS...] [PATH...]
|
67
88
|
|
68
89
|
Valid options:
|
69
90
|
--username ARG : specify a username ARG
|
@@ -81,24 +102,45 @@ EOS
|
|
81
102
|
when 'help', '?', 'h'
|
82
103
|
puts <<"EOS"
|
83
104
|
help (?,h): Describe the usage of this program or its subcommands.
|
84
|
-
usage:
|
105
|
+
usage: #@base_cmd help [SUBCOMMAND]
|
85
106
|
|
86
107
|
EOS
|
87
108
|
when 'init'
|
88
109
|
puts <<"EOS"
|
89
110
|
init: Check environment and initialize configuration.
|
90
|
-
usage:
|
111
|
+
usage: #@base_cmd init [OPTIONS...]
|
91
112
|
|
92
113
|
Valid options:
|
93
|
-
--repo ARG : specify svn repository
|
114
|
+
--repo ARG : specify svn repository URL
|
115
|
+
ARG could be any of the following:
|
116
|
+
file:///* : local repository
|
117
|
+
svn://* : svn access repository
|
118
|
+
http(s)://* : http access repository
|
119
|
+
private : make local repository in ~/.yggdrasil
|
94
120
|
--username ARG : specify a username ARG
|
95
121
|
--password ARG : specify a password ARG
|
122
|
+
--server ARG : specify a server address and port
|
123
|
+
e.g. 192.168.1.35:4000
|
124
|
+
|
125
|
+
EOS
|
126
|
+
when 'init-server'
|
127
|
+
puts <<"EOS"
|
128
|
+
init-server: setup server configuration.
|
129
|
+
usage: #@base_cmd init-server [OPTIONS...]
|
130
|
+
|
131
|
+
Valid options:
|
132
|
+
--port ARG : specify a TCP port number ARG
|
133
|
+
--repo ARG : URL of subversion repository
|
134
|
+
ARG could be include {HOST} and it replace by client hostname
|
135
|
+
e.g. svn://192.168.3.5/servers/{HOST}/ygg
|
136
|
+
--ro-username ARG : specify a username ARG for read only
|
137
|
+
--ro-password ARG : specify a password ARG for read only
|
96
138
|
|
97
139
|
EOS
|
98
140
|
when 'list', 'ls'
|
99
141
|
puts <<"EOS"
|
100
142
|
list (ls): List directory entries in the repository.
|
101
|
-
usage:
|
143
|
+
usage: #@base_cmd list [OPTIONS...] [PATH...]
|
102
144
|
|
103
145
|
Valid options:
|
104
146
|
--username ARG : specify a username ARG
|
@@ -117,7 +159,7 @@ EOS
|
|
117
159
|
when 'log'
|
118
160
|
puts <<"EOS"
|
119
161
|
log: Show the log messages for a set of revision(s) and/or file(s).
|
120
|
-
usage:
|
162
|
+
usage: #@base_cmd log [OPTIONS...] [PATH]
|
121
163
|
|
122
164
|
Valid options:
|
123
165
|
--username ARG : specify a username ARG
|
@@ -132,31 +174,49 @@ Valid options:
|
|
132
174
|
'PREV' revision just before COMMITTED
|
133
175
|
|
134
176
|
EOS
|
135
|
-
when '
|
177
|
+
when 'results'
|
136
178
|
puts <<"EOS"
|
137
|
-
|
138
|
-
usage:
|
179
|
+
results: display the result of yggdrasil check command.
|
180
|
+
usage: #@base_cmd results [OPTIONS...]
|
139
181
|
|
140
182
|
Valid options:
|
141
|
-
--
|
142
|
-
--password ARG : specify a password ARG
|
183
|
+
--limit ARG : minutes from the final report, to judge the host not be alive
|
143
184
|
|
144
185
|
EOS
|
145
186
|
when 'revert'
|
146
187
|
puts <<"EOS"
|
147
188
|
revert: Restore pristine working copy file (undo most local edits).
|
148
|
-
usage:
|
189
|
+
usage: #@base_cmd revert [OPTIONS...] [PATH...]
|
149
190
|
|
150
191
|
Valid options:
|
151
192
|
--username ARG : specify a username ARG
|
152
193
|
--password ARG : specify a password ARG
|
153
194
|
--non-interactive : do no interactive prompting
|
154
195
|
|
196
|
+
EOS
|
197
|
+
when 'server'
|
198
|
+
puts <<"EOS"
|
199
|
+
server: receive tcp connection in order to unify the setup and to record check results.
|
200
|
+
usage: #@base_cmd server [OPTIONS...]
|
201
|
+
|
202
|
+
Valid options:
|
203
|
+
--daemon : daemon mode
|
204
|
+
|
205
|
+
EOS
|
206
|
+
when 'status', 'stat', 'st'
|
207
|
+
puts <<"EOS"
|
208
|
+
status (stat, st): Print the status of managed files and directories.
|
209
|
+
usage: #@base_cmd status [OPTIONS...] [PATH...]
|
210
|
+
|
211
|
+
Valid options:
|
212
|
+
--username ARG : specify a username ARG
|
213
|
+
--password ARG : specify a password ARG
|
214
|
+
|
155
215
|
EOS
|
156
216
|
when 'update'
|
157
217
|
puts <<"EOS"
|
158
218
|
update (up): Bring changes from the repository into the local files.
|
159
|
-
usage:
|
219
|
+
usage: #@base_cmd update [OPTIONS...] [PATH...]
|
160
220
|
|
161
221
|
Valid options:
|
162
222
|
--username ARG : specify a username ARG
|
@@ -175,7 +235,7 @@ EOS
|
|
175
235
|
when 'version', '--version'
|
176
236
|
puts <<"EOS"
|
177
237
|
version: See the program version
|
178
|
-
usage:
|
238
|
+
usage: #@base_cmd version
|
179
239
|
|
180
240
|
EOS
|
181
241
|
else
|
data/lib/yggdrasil/init.rb
CHANGED
@@ -5,7 +5,12 @@ class Yggdrasil
|
|
5
5
|
|
6
6
|
args = parse_options(args,
|
7
7
|
{'--username'=>:username, '--password'=>:password,
|
8
|
-
'--repo'=>:repo, '--parents'=>:parents?,
|
8
|
+
'--repo'=>:repo, '--parents'=>:parents?,
|
9
|
+
'--non-interactive'=>:non_interactive?,
|
10
|
+
'--server'=>:server })
|
11
|
+
@options[:ro_username] = @options[:username] if @options.has_key?(:username)
|
12
|
+
@options[:ro_password] = @options[:password] if @options.has_key?(:password)
|
13
|
+
|
9
14
|
if args.size != 0
|
10
15
|
error "invalid arguments: #{args.join(',')}"
|
11
16
|
end
|
@@ -19,29 +24,34 @@ class Yggdrasil
|
|
19
24
|
|
20
25
|
error "already exist config file: #@config_file" if File.exist?(@config_file)
|
21
26
|
|
22
|
-
|
23
|
-
|
24
|
-
|
27
|
+
get_server_config(true) if @options.has_key?(:server)
|
28
|
+
|
29
|
+
init_get_repo_interactive unless @options.has_key?(:repo)
|
25
30
|
|
26
|
-
unless /^(http:|file:|svn:)/ =~ input
|
27
|
-
puts "ERROR: Invalid URL."
|
28
|
-
redo
|
29
|
-
end
|
30
|
-
@options[:repo] = input
|
31
|
-
end
|
32
31
|
@options[:repo].chomp!
|
33
32
|
@options[:repo].chomp!('/')
|
33
|
+
@options[:repo].gsub!(/\{HOST\}/, Socket.gethostname)
|
34
|
+
if @options[:repo] == "private"
|
35
|
+
Dir.mkdir @config_dir, 0755 unless File.exist?(@config_dir)
|
36
|
+
repo_dir = "#@config_dir/private_repo"
|
37
|
+
system3 "svnadmin create #{repo_dir}"
|
38
|
+
@options[:repo] = "file://#{repo_dir}"
|
39
|
+
end
|
34
40
|
|
35
|
-
puts "SVN access
|
41
|
+
puts "check SVN access..."
|
42
|
+
if @options.has_key?(:ro_username)
|
43
|
+
anon_access = false
|
44
|
+
else
|
45
|
+
anon_access = true
|
46
|
+
end
|
36
47
|
url_parts = @options[:repo].split('/')
|
37
48
|
url_parts_num = url_parts.size
|
38
|
-
anon_access = true
|
39
49
|
loop do
|
40
50
|
if url_parts_num < 3
|
41
51
|
if anon_access
|
42
52
|
anon_access = false
|
43
53
|
url_parts_num = url_parts.size
|
44
|
-
|
54
|
+
get_user_pass_if_need_to_read_repo
|
45
55
|
else
|
46
56
|
error "can not access to '#{@options[:repo]}'."
|
47
57
|
end
|
@@ -51,7 +61,7 @@ class Yggdrasil
|
|
51
61
|
url = url_parts[0...url_parts_num].join('/')
|
52
62
|
puts "try url=#{url}" if @options[:debug?]
|
53
63
|
cmd = "#{svn} ls --no-auth-cache --non-interactive #{url}"
|
54
|
-
cmd +=
|
64
|
+
cmd += username_password_options_to_read_repo
|
55
65
|
ret = system3(cmd, false)
|
56
66
|
unless ret.nil?
|
57
67
|
puts "SVN access OK: #{url}"
|
@@ -95,17 +105,43 @@ class Yggdrasil
|
|
95
105
|
system3 "rm -rf #@mirror_dir"
|
96
106
|
end
|
97
107
|
|
108
|
+
# make config file
|
98
109
|
File.open(@config_file, "w") do |f|
|
99
|
-
f.
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
110
|
+
f.puts "path=#{ENV['PATH']}\n"\
|
111
|
+
"svn=#{svn}\n"\
|
112
|
+
"svn_version=#{svn_version}\n"\
|
113
|
+
"repo=#{@options[:repo]}\n"\
|
114
|
+
"anon-access=#{anon_access ? 'read' : 'none'}\n"
|
115
|
+
f.puts "server=#{@options[:server]}\n" if @options.has_key?(:server)
|
116
|
+
end
|
105
117
|
|
118
|
+
# make mirror dir
|
106
119
|
`rm -rf #@mirror_dir`
|
107
120
|
cmd = "#{svn} checkout --no-auth-cache --non-interactive #{@options[:repo]} #@mirror_dir"
|
108
121
|
cmd += " --username '#{@options[:username]}' --password '#{@options[:password]}'" unless anon_access
|
109
122
|
system3 cmd
|
123
|
+
|
124
|
+
# make checker dir and checker example
|
125
|
+
Dir.mkdir @checker_dir, 0755 unless File.exist?(@checker_dir)
|
126
|
+
FileUtils.cd @checker_dir do
|
127
|
+
`echo 'gem list' > gem_list`
|
128
|
+
`chmod +x gem_list`
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
def init_get_repo_interactive
|
134
|
+
loop do
|
135
|
+
print "Input svn repo URL: "
|
136
|
+
input = $stdin.gets
|
137
|
+
error "can not input svn repo URL" unless input
|
138
|
+
|
139
|
+
if %r{^(http://|https://|file://|svn://|private)} =~ input
|
140
|
+
@options[:repo] = input
|
141
|
+
break
|
142
|
+
end
|
143
|
+
|
144
|
+
puts "ERROR: Invalid URL."
|
145
|
+
end
|
110
146
|
end
|
111
147
|
end
|
data/lib/yggdrasil/list.rb
CHANGED
@@ -7,8 +7,7 @@ class Yggdrasil
|
|
7
7
|
'-r'=>:revision, '--revision'=>:revision,
|
8
8
|
'-R'=>:recursive?, '--recursive'=>:recursive?})
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
get_user_pass_if_need_to_read_repo
|
12
11
|
sync_mirror
|
13
12
|
|
14
13
|
repos = Array.new
|
@@ -22,7 +21,7 @@ class Yggdrasil
|
|
22
21
|
end
|
23
22
|
|
24
23
|
cmd_arg = "#@svn list --no-auth-cache --non-interactive"
|
25
|
-
cmd_arg +=
|
24
|
+
cmd_arg += username_password_options_to_read_repo
|
26
25
|
cmd_arg += " -r #{@options[:revision]}" if @options.has_key?(:revision)
|
27
26
|
cmd_arg += " -R" if @options.has_key?(:recursive?)
|
28
27
|
cmd_arg += ' ' + repos.join(' ')
|
data/lib/yggdrasil/log.rb
CHANGED
@@ -5,7 +5,7 @@ class Yggdrasil
|
|
5
5
|
args = parse_options(args,
|
6
6
|
{'--username'=>:username, '--password'=>:password,
|
7
7
|
'-r'=>:revision, '--revision'=>:revision})
|
8
|
-
|
8
|
+
get_user_pass_if_need_to_read_repo
|
9
9
|
|
10
10
|
if args.size == 0
|
11
11
|
dir = @mirror_dir + @current_dir
|
@@ -22,7 +22,7 @@ class Yggdrasil
|
|
22
22
|
end
|
23
23
|
|
24
24
|
cmd_arg = "#@svn log --verbose --no-auth-cache --non-interactive"
|
25
|
-
cmd_arg +=
|
25
|
+
cmd_arg += username_password_options_to_read_repo
|
26
26
|
if @options.has_key?(:revision)
|
27
27
|
cmd_arg += " -r #{@options[:revision]}"
|
28
28
|
else
|
data/lib/yggdrasil/revert.rb
CHANGED
@@ -5,7 +5,7 @@ class Yggdrasil
|
|
5
5
|
target_paths = parse_options(args,
|
6
6
|
{'--username'=>:username, '--password'=>:password,
|
7
7
|
'--non-interactive'=>:non_interactive?})
|
8
|
-
|
8
|
+
get_user_pass_if_need_to_read_repo
|
9
9
|
|
10
10
|
updates = sync_mirror
|
11
11
|
matched_updates = select_updates(updates, target_paths)
|
@@ -17,7 +17,7 @@ class Yggdrasil
|
|
17
17
|
confirmed_updates = confirm_updates(matched_updates) do |relative_path|
|
18
18
|
FileUtils.cd @mirror_dir do
|
19
19
|
cmd = "#@svn diff --no-auth-cache --non-interactive #{relative_path}"
|
20
|
-
cmd +=
|
20
|
+
cmd += username_password_options_to_read_repo
|
21
21
|
puts system3(cmd)
|
22
22
|
end
|
23
23
|
end
|
@@ -27,12 +27,12 @@ class Yggdrasil
|
|
27
27
|
|
28
28
|
FileUtils.cd @mirror_dir do
|
29
29
|
cmd = "#@svn revert #{confirmed_updates.reverse.join(' ')}"
|
30
|
-
cmd +=
|
30
|
+
cmd += username_password_options_to_read_repo
|
31
31
|
system3 cmd
|
32
32
|
|
33
33
|
# make ls hash
|
34
34
|
cmd = "#@svn ls -R #@repo --no-auth-cache --non-interactive"
|
35
|
-
cmd +=
|
35
|
+
cmd += username_password_options_to_read_repo
|
36
36
|
out = system3(cmd)
|
37
37
|
|
38
38
|
ls_hash = Hash.new
|
data/lib/yggdrasil/status.rb
CHANGED
@@ -4,7 +4,7 @@ class Yggdrasil
|
|
4
4
|
def status(args)
|
5
5
|
args = parse_options(args,
|
6
6
|
{'--username'=>:username, '--password'=>:password})
|
7
|
-
|
7
|
+
get_user_pass_if_need_to_read_repo
|
8
8
|
|
9
9
|
sync_mirror
|
10
10
|
|
@@ -19,7 +19,7 @@ class Yggdrasil
|
|
19
19
|
end
|
20
20
|
|
21
21
|
cmd_arg = "#@svn status#{paths} -qu --no-auth-cache --non-interactive"
|
22
|
-
cmd_arg +=
|
22
|
+
cmd_arg += username_password_options_to_read_repo
|
23
23
|
FileUtils.cd @mirror_dir do
|
24
24
|
out = system3(cmd_arg)
|
25
25
|
print out.gsub(/^Status against revision:.*\n/, '')
|
data/lib/yggdrasil/update.rb
CHANGED
@@ -6,16 +6,18 @@ class Yggdrasil
|
|
6
6
|
{'--username'=>:username, '--password'=>:password,
|
7
7
|
'-r'=>:revision, '--revision'=>:revision,
|
8
8
|
'--non-interactive'=>:non_interactive?})
|
9
|
-
|
9
|
+
get_user_pass_if_need_to_read_repo
|
10
10
|
sync_mirror
|
11
11
|
|
12
12
|
updates = Array.new
|
13
13
|
FileUtils.cd @mirror_dir do
|
14
14
|
cmd = "#@svn status -qu --no-auth-cache --non-interactive"
|
15
|
-
cmd +=
|
15
|
+
cmd += username_password_options_to_read_repo
|
16
16
|
out = system3(cmd)
|
17
17
|
out.split(/\n/).each do |line|
|
18
|
-
|
18
|
+
if /^.*\*.*\s(\S+)\s*$/ =~ line
|
19
|
+
updates << ['', $1]
|
20
|
+
end
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
@@ -29,7 +31,7 @@ class Yggdrasil
|
|
29
31
|
FileUtils.cd @mirror_dir do
|
30
32
|
cmd = "#@svn diff"
|
31
33
|
cmd += " --no-auth-cache --non-interactive"
|
32
|
-
cmd +=
|
34
|
+
cmd += username_password_options_to_read_repo
|
33
35
|
if @options.has_key?(:revision)
|
34
36
|
cmd += " --old=#{relative_path} --new=#{relative_path}@#{@options[:revision]}"
|
35
37
|
else
|
@@ -44,7 +46,7 @@ class Yggdrasil
|
|
44
46
|
return if confirmed_updates == 0 # no files to update
|
45
47
|
|
46
48
|
cmd_arg = "#@svn update --no-auth-cache --non-interactive"
|
47
|
-
cmd_arg +=
|
49
|
+
cmd_arg += username_password_options_to_read_repo
|
48
50
|
if @options.has_key?(:revision)
|
49
51
|
cmd_arg += " -r #{@options[:revision]}"
|
50
52
|
else
|