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 4d3e6fc += create_ metthod
4d3e6fc is described below
commit 4d3e6fc5da801224cda3421041a86750984dc711
Author: Sebb <[email protected]>
AuthorDate: Tue Jul 7 12:07:23 2020 +0100
+= create_ metthod
---
lib/whimsy/asf/svn.rb | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb
index 6c78056..0dfdb60 100644
--- a/lib/whimsy/asf/svn.rb
+++ b/lib/whimsy/asf/svn.rb
@@ -717,7 +717,36 @@ module ASF
FileUtils.rm_rf tmpdir unless temp
end
end
-
+
+ # DRAFT DRAFT
+ # create a new file and fail if it already exists
+ # Parameters:
+ # directory - parent directory as an SVN URL
+ # filename - name of file to create
+ # source - file to upload
+ # msg - commit message
+ # env - user/pass
+ # _ - wunderbar context
+ # Returns:
+ # 0 on success
+ # 1 if the file exists
+ # RuntimeError on unexpected error
+ def self.create_(directory, filename, source, msg, env, _)
+ parentrev, err = self.getInfoItem(directory, 'revision', env.user,
env.password)
+ unless parentrev
+ throw RuntimeError.new("Failed to get revision for #{directory}:
#{err}")
+ end
+ target = File.join(directory, filename)
+ out, err = self.svn('list', target, {env: env})
+ return 1 if out # already exists
+ # Need to check for unexpected errors; the error message does not
include the full repo URL
+ unless err =~ %r{^svn: warning: W160013: Path '.+#{filename}' not found}
+ throw RuntimeError.new("#{filename} already exists! #{err}")
+ end
+ commands = [['put', source, target]]
+ self.svnmucc_(commands, msg, env, _, parentrev)
+ end
+
# DRAFT DRAFT DRAFT
# checkout file and update it using svnmucc put
# the block can return additional info, which is used