OSDN Git Service

Package and release command gets target from vars file.
[osdn-codes/osdn-cli.git] / lib / osdn / cli / command / package.rb
index b24b0f1..c8865f5 100644 (file)
@@ -5,8 +5,8 @@ module OSDN; module CLI; module Command
     def help
       puts "#{$0} package [opts] [list]"
       puts "#{$0} package [opts] create <new-package-name>"
-      puts "#{$0} package [opts] update <numeric-package-id> [name]"
-      puts "#{$0} package [opts] delete <numeric-package-id>"
+      puts "#{$0} package [opts] update [numeric-package-id] [name]"
+      puts "#{$0} package [opts] delete [numeric-package-id]"
       puts "Options:"
       puts "  -f --format=<pretty|json>  Set output format"
       puts "  -p --project=<project>     Target project (numeric id or name)"
@@ -65,20 +65,29 @@ module OSDN; module CLI; module Command
     end
 
     def update
-      target_id = ARGV.shift
-      args = {name: ARGV.shift}
+      _set_package_id
+      args = {}
+      if ARGV[1].to_s != ""
+        args[:name] = ARGV[1]
+      end
       if @visibility
         args[:visibility] = @visibility
       end
-      p = api.update_package target_proj, target_id, args
-      logger.info "Package #{target_id} has been updated."
+      logger.debug "Updating package #{target_package} as #{args.inspect}"
+      p = api.update_package target_proj, target_package, args
+      logger.info "Package #{target_package} has been updated."
       puts format_package(p)
     end
 
     def delete
-      target_id = ARGV.shift
-      p = api.delete_package target_proj, target_id
-      logger.info "Package #{target_id} has been deleted."
+      _set_package_id
+      p = api.delete_package target_proj, target_package
+      logger.info "Package #{target_package} has been deleted."
+    end
+
+    def _set_package_id
+      return if ARGV[0].to_i == 0
+      @target_package = ARGV[0].to_i
     end
 
   end