OSDN Git Service

Add bandwidth limit option.
[osdn-codes/osdn-cli.git] / lib / osdn / cli.rb
index 631a07d..47962cd 100644 (file)
@@ -30,14 +30,23 @@ module OSDN
       @@_show_progress = v
     end
 
+    @@_rate_limit = nil
+    def _rate_limit
+      @@_rate_limit
+    end
+    def _rate_limit=(v)
+      @@_rate_limit = v
+    end
+
     module_function :client_id, :client_secret,
-                    :_show_progress, :_show_progress=
+                    :_show_progress, :_show_progress=,
+                    :_rate_limit, :_rate_limit=
     
     module Command
       autoload :Login,     'osdn/cli/command/login'
       autoload :Package,   'osdn/cli/command/package'
-      #autoload :Release,   'osdn/cli/command/release'
-      #autoload :FrsFile,   'osdn/cli/command/frs_file'
+      autoload :Release,   'osdn/cli/command/release'
+      autoload :Relfile,   'osdn/cli/command/relfile'
       autoload :FrsMkdirs, 'osdn/cli/command/frs_mkdirs'
       autoload :FrsUpload, 'osdn/cli/command/frs_upload'
       
@@ -83,12 +92,16 @@ module OSDN
         def update_token
           logger.debug "Checking token expires..."
           load_credential
+          unless credential.access_token
+            logger.fatal "You have no access token. Please login with '#{$0} login'."
+            return
+          end
           if credential.expires_at > Time.now + 30
             logger.debug "You have valid access token, skip to refresh."
             return
           end
 
-          logger.debug "Access token has been expired. Refresh access token..."
+          logger.debug "Access token has been expired. Trying to refresh token..."
           api = OSDNClient::DefaultApi.new
           begin
             set_credential api.token(CLI.client_id, CLI.client_secret, grant_type: 'refresh_token', refresh_token: credential.refresh_token)
@@ -102,7 +115,7 @@ module OSDN
             logger.fatal "Please login again."
             return
           end
-          logger.debug "Access token refreshed successfully."
+          logger.debug "Access token is refreshed successfully."
         end
 
         def set_credential(token, update_expires = true)
@@ -165,7 +178,7 @@ module OSDN
         end
 
         def update_variables(dir, vars)
-          write_variables(load_variables(dir, false).merge(vars), dir)
+          write_variables(load_variables(dir, false).deep_merge(vars), dir)
         end
 
         private