OSDN Git Service

Package and release command gets target from vars file.
[osdn-codes/osdn-cli.git] / lib / osdn / cli / command / release.rb
index 0a1163b..ee3e882 100644 (file)
@@ -5,17 +5,17 @@ module OSDN; module CLI; module Command
     def help
       puts "#{$0} release [opts] [list]"
       puts "#{$0} release [opts] create <new-release-name>"
-      puts "#{$0} release [opts] update <numeric-release-id> [name]"
-      puts "#{$0} release [opts] delete <numeric-release-id>"
+      puts "#{$0} release [opts] update [numeric-release-id] [name]"
+      puts "#{$0} release [opts] delete [numeric-release-id]"
       puts "Options:"
       puts "  -f --format=<pretty|json>  Set output format"
       puts "  -p --project=<project>     Target project (numeric id or name)"
-      puts "     --package=<project>     Target package (numeric id)"
+      puts "     --package=<package-id>  Target package (numeric id)"
       puts "  -v --visibility=<public|private|hidden>"
     end
 
     def self.description
-      "Manipulate release (includes by package) of project"
+      "Manipulate frs releases of project"
     end
 
     def process_options
@@ -71,21 +71,29 @@ module OSDN; module CLI; module Command
     end
 
     def update
-      target_id = ARGV.shift
-      args = {name: ARGV.shift}
+      _set_release_id
+      args = {}
+      if ARGV[1].to_s != ""
+        args[:name] = ARGV.shift
+      end
       if @visibility
         args[:visibility] = @visibility
       end
-      r = api.update_release target_proj, target_package, target_id, args
-      logger.info "Release #{target_id} has been updated."
+      logger.debug "Updating release #{target_release} as #{args.inspect}"
+      r = api.update_release target_proj, target_package, target_release, args
+      logger.info "Release #{target_release} has been updated."
       puts format_release(r)
     end
 
     def delete
-      target_id = ARGV.shift
-      r = api.delete_release target_proj, target_package, target_id
-      logger.info "Release #{target_id} has been deleted."
+      _set_release_id
+      r = api.delete_release target_proj, target_package, target_release
+      logger.info "Release #{target_release} has been deleted."
     end
 
+    def _set_release_id
+      return if ARGV[0].to_i == 0
+      @target_release = ARGV[0].to_i
+    end
   end
 end; end; end