Commit MetaInfo

Révisionf4107a22ef23c7dedf324589325ba2efd1e04362 (tree)
l'heure2016-03-25 14:21:20
AuteurTatsuki Sugiura <sugi@nemu...>
CommiterTatsuki Sugiura

Message de Log

Add check for remote package and release existance.

Change Summary

Modification

--- a/lib/osdn/cli/command/frs_upload.rb
+++ b/lib/osdn/cli/command/frs_upload.rb
@@ -49,7 +49,23 @@ module OSDN; module CLI; module Command
4949 proj_info = api.get_project target_proj # check project existance
5050
5151 Pathname.glob(@target_dir+'*').sort.each do |pdir|
52- unless load_variables(pdir).package_id
52+ if cur_pkgid = load_variables(pdir).package_id
53+ # check package existance on server
54+ begin
55+ api.get_package target_proj, target_package(pdir)
56+ rescue OSDNClient::ApiError => e
57+ begin
58+ err = JSON.parse(e.response_body)
59+ rescue
60+ raise e
61+ end
62+ if err['status'] == 404
63+ logger.warn "Package ##{cur_pkgid} has been deleted on server and local directory '#{pdir}' remains. You can delete the local directory or delete '#{pdir}/.osdn.vars' file to create a package again with new ID."
64+ next
65+ end
66+ raise e
67+ end
68+ else
5369 logger.info "Createing new package '#{pdir.basename}'"
5470 if @dry_run
5571 pinfo = Hashie::Mash.new id: '(dry-run)', name: pdir.basename, url: '(dry-run)'
@@ -69,7 +85,20 @@ module OSDN; module CLI; module Command
6985 vars = load_variables(rdir)
7086 rinfo = nil
7187 if vars.release_id
72- rinfo = api.get_release target_proj, target_package(rdir), target_release(rdir)
88+ begin
89+ rinfo = api.get_release target_proj, target_package(rdir), target_release(rdir)
90+ rescue OSDNClient::ApiError => e
91+ begin
92+ err = JSON.parse(e.response_body)
93+ rescue
94+ raise e
95+ end
96+ if err['status'] == 404
97+ logger.warn "Release ##{vars.release_id} has been deleted on server and local directory '#{rdir}' remains. You can delete the local directory or delete '#{rdir}/.osdn.vars' file to create a release again with new ID."
98+ next
99+ end
100+ raise e
101+ end
73102 else vars.release_id
74103 logger.info "Createing new release '#{rdir.basename}'"
75104 if @dry_run
Afficher sur ancien navigateur de dépôt.