OSDN Git Service

Move digest calc to base class.
[osdn-codes/osdn-cli.git] / lib / osdn / cli / command / frs_upload.rb
index e9aaa54..3832c96 100644 (file)
@@ -1,46 +1,3 @@
-require 'digest'
-require 'ethon'
-
-module OSDN; module CLI; module Command
-  class FrsUpload < Base
-    @@_show_progress = false
-    def self._show_progress
-      @@_show_progress
-    end
-    def self._show_progress=(v)
-      need_reset = (!!@@_show_progress != !!v)
-      @@_show_progress = v
-      need_reset and _reset_all_typhoeus_pool
-    end
-
-    def self._reset_all_typhoeus_pool
-      first_easyid = nil
-      while true
-        e = Typhoeus::Pool.get
-        Typhoeus::Pool.release(e)
-        e.__id__ == first_easyid and break
-        first_easyid ||= e.__id__
-      end
-    end
-  end
-end; end; end
-
-module Ethon
-  class Easy
-    module Callbacks
-      alias_method :set_callbacks_orig, :set_callbacks
-      def set_callbacks
-        set_callbacks_orig
-        if OSDN::CLI::Command::FrsUpload._show_progress
-          Curl.set_option(:noprogress, false, handle)
-        else
-          Curl.set_option(:noprogress, true, handle)
-        end
-      end
-    end
-  end
-end
-
 module OSDN; module CLI; module Command
   class FrsUpload < Base
     def help
@@ -87,7 +44,7 @@ module OSDN; module CLI; module Command
       @target_dir = Pathname.new(ARGV.shift || '.')
       proj_info = api.get_project target_proj # check project existance
 
-      Pathname.glob(@target_dir+'*').each do |pdir|
+      Pathname.glob(@target_dir+'*').sort.each do |pdir|
         unless load_variables(pdir).package_id
           logger.info "Createing new package '#{pdir.basename}'"
           if @dry_run
@@ -99,7 +56,7 @@ module OSDN; module CLI; module Command
           $stdout.puts "New package '#{pinfo.name}' has been created; #{pinfo.url}"
         end
 
-        Pathname.glob(pdir + '*').each do |rdir|
+        Pathname.glob(pdir + '*').sort.each do |rdir|
           vars = load_variables(rdir)
           rinfo = nil
           if vars.release_id
@@ -115,7 +72,7 @@ module OSDN; module CLI; module Command
             $stdout.puts "New release '#{rinfo.name}' has been created; #{rinfo.url}"
           end
           
-          Pathname.glob(rdir + '*').each do |file|
+          Pathname.glob(rdir + '*').sort.each do |file|
             if file.directory?
               logger.error "Skip direcotry #{file}"
               next
@@ -138,12 +95,12 @@ module OSDN; module CLI; module Command
                 finfo = Hashie::Mash.new id: '(dry-run)', url: '(dry-run)'
               else
                 logger.level <= Logger::INFO and
-                  self.class._show_progress = true
+                  OSDN::CLI._show_progress = true
                 fio = file.open
                 logger.info "Starting upload #{file}..."
                 finfo = api.create_release_file target_proj, target_package(rdir), target_release(rdir), fio, visibility: @visibility
                 fio.close
-                self.class._show_progress = false
+                OSDN::CLI._show_progress = false
                 if digests.find { |type, dig| dig != finfo.send("digest_#{type}") }
                   logger.error "File digests are mismatch! Upload file #{file} may be broken! Please check."
                 else
@@ -192,16 +149,5 @@ module OSDN; module CLI; module Command
     def api
       OSDNClient::ProjectApi.new
     end
-
-    def hexdigest(klass, file)
-      fio = file.open
-      dig = klass.new
-      while buf = fio.read(1024*1024) and buf.length > 0
-        dig << buf
-      end
-      fio.close
-      dig.hexdigest
-    end
-
   end
 end; end; end