diff options
| -rw-r--r-- | bin/sisu | 67 | ||||
| -rw-r--r-- | data/doc/sisu/CHANGELOG_v5 | 2 | ||||
| -rw-r--r-- | data/doc/sisu/CHANGELOG_v6 | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/hub.rb | 23 | ||||
| -rw-r--r-- | lib/sisu/v6/hub.rb | 23 | 
5 files changed, 83 insertions, 34 deletions
| @@ -225,40 +225,47 @@ class Orient    def control      require "#{sisu_is[:path_lib]}/hub"      sisu_called_from_directory -    if get_processing_info.processing_files.length > 0 -      get_processing_info.processing_files.each_pair do |markup_dir,markup_file| -        begin -          $sisu_document_markup_directory=markup_dir.gsub(/\/$/,'') -          argv_sub=get_processing_info.command_line_modifiers + markup_file -          if FileTest.directory?(markup_dir) -            system("cd #{markup_dir}") -            Dir.chdir(markup_dir) -            $sisu_document_markup_directory_base_fixed_path= -              Dir.pwd.gsub(/\/(?:#{language_list.regex})$/,'') -            SiSU::HubMaster.new(argv_sub,sisu_called_from_directory) -          elsif markup_dir =~/https?:/ -            markup_file.each do |mf| -              (FileTest.file?(mf)) \ -              ? (puts 'requested remote file already exists in current directory ' \ -                + Dir.pwd + ' using ' + mf) -              : (system("wget #{markup_dir}/#{mf}")) +    begin +      if get_processing_info.processing_files.length > 0 +        get_processing_info.processing_files.each_pair do |markup_dir,markup_file| +          begin +            $sisu_document_markup_directory=markup_dir.gsub(/\/$/,'') +            argv_sub=get_processing_info.command_line_modifiers + markup_file +            if FileTest.directory?(markup_dir) +              system("cd #{markup_dir}") +              Dir.chdir(markup_dir) +              $sisu_document_markup_directory_base_fixed_path= +                Dir.pwd.gsub(/\/(?:#{language_list.regex})$/,'') +              SiSU::HubMaster.new(argv_sub,sisu_called_from_directory) +            elsif markup_dir =~/https?:/ +              markup_file.each do |mf| +                (FileTest.file?(mf)) \ +                ? (puts 'requested remote file already exists in current directory ' \ +                  + Dir.pwd + ' using ' + mf) +                : (system("wget #{markup_dir}/#{mf}")) +              end +              $sisu_document_markup_directory_base_fixed_path= +                Dir.pwd.gsub(/\/(?:#{language_list.regex})$/,'') +              argv_sub=command_line_modifiers + markup_file +              SiSU::HubMaster.new(argv_sub,sisu_called_from_directory) +            else p "Error directory specified #{markup_dir} not found"              end -            $sisu_document_markup_directory_base_fixed_path= -              Dir.pwd.gsub(/\/(?:#{language_list.regex})$/,'') -            argv_sub=command_line_modifiers + markup_file -            SiSU::HubMaster.new(argv_sub,sisu_called_from_directory) -          else p "Error directory specified #{markup_dir} not found" +          ensure +            Dir.chdir(sisu_called_from_directory) +            system("cd #{sisu_called_from_directory}")            end -        ensure -          Dir.chdir(sisu_called_from_directory) -          system("cd #{sisu_called_from_directory}")          end +      else +        $sisu_document_markup_directory=Dir.pwd.gsub(/\/$/,'') +        $sisu_document_markup_directory_base_fixed_path= +          Dir.pwd.gsub(/(^|\/)(?:#{language_list.regex})$/,'') +        SiSU::HubMaster.new(processing.argv,sisu_called_from_directory)        end -    else -      $sisu_document_markup_directory=Dir.pwd.gsub(/\/$/,'') -      $sisu_document_markup_directory_base_fixed_path= -        Dir.pwd.gsub(/(^|\/)(?:#{language_list.regex})$/,'') -      SiSU::HubMaster.new(processing.argv,sisu_called_from_directory) +    rescue +    ensure +      SiSU::HubClose.new(sisu_called_from_directory) +      Dir.chdir(sisu_called_from_directory) +      system("cd #{sisu_called_from_directory}")      end    end  end diff --git a/data/doc/sisu/CHANGELOG_v5 b/data/doc/sisu/CHANGELOG_v5 index a1f293e9..ea3afa14 100644 --- a/data/doc/sisu/CHANGELOG_v5 +++ b/data/doc/sisu/CHANGELOG_v5 @@ -38,6 +38,8 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_5.5.2.orig.tar.xz    sisu_5.5.2.orig.tar.xz    sisu_5.5.2-1.dsc +* bin/sisu, hub, hub close (ensure), remove /tmp/ processing dir +  %% 5.5.1.orig.tar.xz (2014-07-15:28/2)  http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/sisu_5.5.1  http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_5.5.1-1 diff --git a/data/doc/sisu/CHANGELOG_v6 b/data/doc/sisu/CHANGELOG_v6 index 0c6b7311..41165ea5 100644 --- a/data/doc/sisu/CHANGELOG_v6 +++ b/data/doc/sisu/CHANGELOG_v6 @@ -28,6 +28,8 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_6.1.2.orig.tar.xz    sisu_6.1.2.orig.tar.xz    sisu_6.1.2-1.dsc +* bin/sisu, hub, hub close (ensure), remove /tmp/ processing dir +  %% 6.1.1.orig.tar.xz (2014-07-15:28/2)  http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/sisu_6.1.1  http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_6.1.1-1 diff --git a/lib/sisu/v5/hub.rb b/lib/sisu/v5/hub.rb index 6a0f4640..510e2092 100644 --- a/lib/sisu/v5/hub.rb +++ b/lib/sisu/v5/hub.rb @@ -93,6 +93,22 @@ module SiSU        end      end    end +  class HubClose +    def initialize(call_path) +      begin +        @env=SiSU_Env::InfoEnv.new +      rescue +      ensure +        if FileTest.directory?(@env.processing_path.processing) \ +        and @env.processing_path.processing_base_tmp =~/^\/tmp\/\S+/ +          FileUtils::cd(@env.processing_path.processing_base_tmp) do +            FileUtils::rm_rf('.') +          end +        end +        Dir.chdir(call_path) +      end +    end +  end    class OptionLoopFiles      attr_reader :opt      def initialize(opt) @@ -111,6 +127,7 @@ module SiSU          @opt.pth=@opt.f_pths[i][:pth]          @opt.lng=@opt.f_pths[i][:lng]          Dir.chdir(@opt.f_pth[:pth]) #watch +        SiSU_Env::FilenameLanguageCodeInsert.new(@opt,@opt.lng).language_code_insert # ... track          @env=SiSU_Env::InfoEnv.new(fno)          yield        end @@ -784,8 +801,10 @@ module SiSU            and @@env.user \            and FileTest.directory?(@@env.processing_path.processing) \            and @@env.processing_path.processing =~/#{@@env.user}$/ #clean temporary processing directory of content as is located in public area -            FileUtils::cd(@@env.processing_path.processing_base_tmp) do -              FileUtils::rm_rf(@@env.user) unless @opt.act[:maintenance][:set] ==:on +            if @@env.processing_path.processing_base_tmp =~/^\/tmp\/\S+/ +              FileUtils::cd(@@env.processing_path.processing_base_tmp) do +                FileUtils::rm_rf('.') unless @opt.act[:maintenance][:set] ==:on +              end              end            end          elsif action_on_file_ == :true \ diff --git a/lib/sisu/v6/hub.rb b/lib/sisu/v6/hub.rb index 1818a714..e061ee46 100644 --- a/lib/sisu/v6/hub.rb +++ b/lib/sisu/v6/hub.rb @@ -93,6 +93,22 @@ module SiSU        end      end    end +  class HubClose +    def initialize(call_path) +      begin +        @env=SiSU_Env::InfoEnv.new +      rescue +      ensure +        if FileTest.directory?(@env.processing_path.processing) \ +        and @env.processing_path.processing_base_tmp =~/^\/tmp\/\S+/ +          FileUtils::cd(@env.processing_path.processing_base_tmp) do +            FileUtils::rm_rf('.') +          end +        end +        Dir.chdir(call_path) +      end +    end +  end    class OptionLoopFiles      attr_reader :opt      def initialize(opt) @@ -111,6 +127,7 @@ module SiSU          @opt.pth=@opt.f_pths[i][:pth]          @opt.lng=@opt.f_pths[i][:lng]          Dir.chdir(@opt.f_pth[:pth]) #watch +        SiSU_Env::FilenameLanguageCodeInsert.new(@opt,@opt.lng).language_code_insert # ... track          @env=SiSU_Env::InfoEnv.new(fno)          yield        end @@ -784,8 +801,10 @@ module SiSU            and @@env.user \            and FileTest.directory?(@@env.processing_path.processing) \            and @@env.processing_path.processing =~/#{@@env.user}$/ #clean temporary processing directory of content as is located in public area -            FileUtils::cd(@@env.processing_path.processing_base_tmp) do -              FileUtils::rm_rf(@@env.user) unless @opt.act[:maintenance][:set] ==:on +            if @@env.processing_path.processing_base_tmp =~/^\/tmp\/\S+/ +              FileUtils::cd(@@env.processing_path.processing_base_tmp) do +                FileUtils::rm_rf('.') unless @opt.act[:maintenance][:set] ==:on +              end              end            end          elsif action_on_file_ == :true \ | 
