Sha256: 82db2151c7ebd3c36afed9d5e186709bc4ff7e1bb10800ac52e5da3e82cebb42

Contents?: true

Size: 1.33 KB

Versions: 76

Compression:

Stored size: 1.33 KB

Contents

#!/usr/bin/env ruby

$VERBOSE = true

$: << "../lib"

require 'zip'
require 'find'

module Zip
  module ZipFind
    def self.find(path, zipFilePattern = /\.zip$/i)
      Find.find(path) {
	|fileName|
	yield(fileName)
	if zipFilePattern.match(fileName)  && File.file?(fileName)
	  begin
	    Zip::File.foreach(fileName)  {
	      |zipEntry|
	      yield(fileName + File::SEPARATOR + zipEntry.to_s)
	    }
	  rescue Errno::EACCES => ex
	    puts ex
	  end
	end
      }
    end

    def self.find_file(path, fileNamePattern, zipFilePattern = /\.zip$/i)
      self.find(path, zipFilePattern) {
	|fileName|
	yield(fileName) if fileNamePattern.match(fileName)
      }
    end

  end
end

if __FILE__ == $0
  module ZipFindConsoleRunner

    PATH_ARG_INDEX = 0;
    FILENAME_PATTERN_ARG_INDEX = 1;
    ZIPFILE_PATTERN_ARG_INDEX = 2;

    def self.run(args)
      check_args(args)
      Zip::ZipFind.find_file(args[PATH_ARG_INDEX],
			    args[FILENAME_PATTERN_ARG_INDEX],
			    args[ZIPFILE_PATTERN_ARG_INDEX]) {
	|fileName|
	report_entry_found fileName
      }
    end

    def self.check_args(args)
      if (args.size != 3)
	usage
	exit
      end
    end

    def self.usage
      puts "Usage: #{$0} PATH ZIPFILENAME_PATTERN FILNAME_PATTERN"
    end

    def self.report_entry_found(fileName)
      puts fileName
    end

  end

  ZipFindConsoleRunner.run(ARGV)
end

Version data entries

76 entries across 73 versions & 20 rubygems

Version Path
logstash-output-scalyr-0.2.1.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.2.0 vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.2.0.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.26.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.25.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.24.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.23.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.22.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.21.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.20.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.19.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.18.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.17.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.16.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.15.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.14.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.13 vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.12 vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.11.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb
logstash-output-scalyr-0.1.10.beta vendor/bundle/jruby/2.5.0/gems/rubyzip-1.1.7/samples/zipfind.rb