Révision | f4107a22ef23c7dedf324589325ba2efd1e04362 (tree) |
---|---|
l'heure | 2016-03-25 14:21:20 |
Auteur | Tatsuki Sugiura <sugi@nemu...> |
Commiter | Tatsuki Sugiura |
Add check for remote package and release existance.
@@ -49,7 +49,23 @@ module OSDN; module CLI; module Command | ||
49 | 49 | proj_info = api.get_project target_proj # check project existance |
50 | 50 | |
51 | 51 | 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 | |
53 | 69 | logger.info "Createing new package '#{pdir.basename}'" |
54 | 70 | if @dry_run |
55 | 71 | pinfo = Hashie::Mash.new id: '(dry-run)', name: pdir.basename, url: '(dry-run)' |
@@ -69,7 +85,20 @@ module OSDN; module CLI; module Command | ||
69 | 85 | vars = load_variables(rdir) |
70 | 86 | rinfo = nil |
71 | 87 | 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 | |
73 | 102 | else vars.release_id |
74 | 103 | logger.info "Createing new release '#{rdir.basename}'" |
75 | 104 | if @dry_run |