You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by se...@apache.org on 2020/06/28 19:08:28 UTC
[whimsy] branch master updated: Allow local override of
repository.yml definitions
This is an automated email from the ASF dual-hosted git repository.
sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git
The following commit(s) were added to refs/heads/master by this push:
new 33cfa99 Allow local override of repository.yml definitions
33cfa99 is described below
commit 33cfa998a32b140c5505c7f9d09d90a5a9d39080
Author: Sebb <se...@apache.org>
AuthorDate: Sun Jun 28 20:08:09 2020 +0100
Allow local override of repository.yml definitions
---
lib/whimsy/asf/git.rb | 8 ++++++++
lib/whimsy/asf/svn.rb | 43 +++++++++++++++++++++++++++++++++----------
2 files changed, 41 insertions(+), 10 deletions(-)
diff --git a/lib/whimsy/asf/git.rb b/lib/whimsy/asf/git.rb
index 60399a4..f093320 100644
--- a/lib/whimsy/asf/git.rb
+++ b/lib/whimsy/asf/git.rb
@@ -51,6 +51,14 @@ module ASF
unless @repos
@@repository_mtime = File.exist?(REPOSITORY) && File.mtime(REPOSITORY)
@@repository_entries = YAML.load_file(REPOSITORY)
+ repo_override = ASF::Config.get(:repository)
+ if repo_override
+ git_over = repo_override[:git]
+ if git_over
+ Wunderbar.warn("Found override for repository.yml[:git]")
+ end
+ @@repository_entries[:git].merge!(git_over)
+ end
@repos = Hash[Dir[*git].map { |name|
if Dir.exist? name.untaint
diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
index 70213c7..c5b049c 100644
--- a/lib/whimsy/asf/svn.rb
+++ b/lib/whimsy/asf/svn.rb
@@ -41,6 +41,14 @@ module ASF
unless @repos
@@repository_mtime = File.exist?(REPOSITORY) && File.mtime(REPOSITORY)
@@repository_entries = YAML.load_file(REPOSITORY)
+ repo_override = ASF::Config.get(:repository)
+ if repo_override
+ svn_over = repo_override[:svn]
+ if svn_over
+ Wunderbar.warn("Found override for repository.yml[:svn]")
+ end
+ @@repository_entries[:svn].merge!(svn_over)
+ end
@repos = Hash[Dir[*svn].map { |name|
if Dir.exist? name.untaint
@@ -299,16 +307,20 @@ module ASF
user = env.user
else
password = options[:password]
- user = options[:user] if password
- end
- # password was supplied, add credentials
- if password and not options[:dryrun] # don't add auth for dryrun
- cmd << ['--username', user, '--no-auth-cache']
- if self.passwordStdinOK?()
- stdin = password
- cmd << ['--password-from-stdin']
- else
- cmd << ['--password', password]
+ user = options[:user]
+ end
+ unless options[:dryrun] # don't add auth for dryrun
+ if password or user == 'whimsysvn' # whimsysvn user does not require password
+ cmd << ['--username', user, '--no-auth-cache']
+ end
+ # password was supplied, add credentials
+ if password
+ if self.passwordStdinOK?()
+ stdin = password
+ cmd << ['--password-from-stdin']
+ else
+ cmd << ['--password', password]
+ end
end
end
@@ -383,6 +395,7 @@ module ASF
# :args - string or array of strings, e.g. '-v', ['--depth','empty']
# :msg - shorthand for {args: ['--message', value]}
# :depth - shorthand for {args: ['--depth', value]}
+ # :auth - authentication (as [['--username', etc]])
# :env - environment: source for user and password
# :user, :password - used if env is not present
# :verbose - show command (including credentials) before executing it
@@ -400,10 +413,20 @@ module ASF
# Pick off the options specific to svn_ rather than svn
sysopts = options.delete(:sysopts) || {}
+ auth = options.delete(:auth)
+ if auth
+ # override any other auth
+ [:env, :user, :password].each do |k|
+ options.delete[k]
+ end
+ end
cmd, stdin = self._svn_build_cmd(command, path, options)
sysopts[:stdin] = stdin if stdin
+ if auth
+ cmd.insert(1, auth, '--no-auth-cache')
+ end
Wunderbar.warn cmd.inspect if options[:verbose] # includes auth