cmd_tools 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/bak +49 -0
- data/bin/tsh +26 -0
- data/cmd_tools.gemspec +18 -0
- data/lib/cmd_tools/version.rb +3 -0
- data/lib/cmd_tools.rb +3 -0
- metadata +63 -0
    
        data/bin/bak
    ADDED
    
    | @@ -0,0 +1,49 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
            # -*- coding: utf-8 -*-
         | 
| 3 | 
            +
            # bak is an abbreviation of backup.
         | 
| 4 | 
            +
            # Backup files and directories in the current directory into ./bak_since_ directory.
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            if ARGV.empty?
         | 
| 7 | 
            +
              puts <<-EOS
         | 
| 8 | 
            +
            #
         | 
| 9 | 
            +
            $ bak file1 file2 ...
         | 
| 10 | 
            +
            #
         | 
| 11 | 
            +
              EOS
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              exit
         | 
| 14 | 
            +
            end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            require 'fileutils'
         | 
| 17 | 
            +
            require 'find'
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            BAK_DIR_HEAD = "bak_since_"
         | 
| 20 | 
            +
            BAK_DIR_REG = /(\A|\/)#{BAK_DIR_HEAD}\d{12}\z/
         | 
| 21 | 
            +
            BAK_PREFIX = 'bak.'
         | 
| 22 | 
            +
            CURRENT_TIME = Time.now.strftime("%y%m%d%H%M%S")
         | 
| 23 | 
            +
            BAK_DIR\
         | 
| 24 | 
            +
            =  Dir.foreach('.')\
         | 
| 25 | 
            +
                .select{|path| path =~ BAK_DIR_REG}\
         | 
| 26 | 
            +
                .select{|path| File.directory?(path)}\
         | 
| 27 | 
            +
                .first\
         | 
| 28 | 
            +
            || BAK_DIR_HEAD + CURRENT_TIME
         | 
| 29 | 
            +
            BAK_DIR_IN_BAK_DIR_REG = /\A#{BAK_DIR}\/.*#{BAK_DIR_HEAD}\d{12}\z/
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            FileUtils.mkdir_p(BAK_DIR)
         | 
| 32 | 
            +
            (ARGV.map{|path| path.chomp('/')} - ['.', '..', BAK_DIR])\
         | 
| 33 | 
            +
              .select{|path| File.exist?(path)}\
         | 
| 34 | 
            +
              .each{|path|
         | 
| 35 | 
            +
              dest = File.join(BAK_DIR, "#{BAK_PREFIX}#{path}.#{CURRENT_TIME}#{File.extname(path)}")
         | 
| 36 | 
            +
              $stdout.puts "Back up #{path}"
         | 
| 37 | 
            +
              FileUtils.cp_r(path, dest)
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              Find.find(dest){|path_in_dest|
         | 
| 40 | 
            +
                if path_in_dest =~ BAK_DIR_IN_BAK_DIR_REG && File.directory?(path_in_dest)
         | 
| 41 | 
            +
                  $stdout.puts "Delete #{path_in_dest}? [y/N]"
         | 
| 42 | 
            +
                  if $stdin.gets.strip =~ /\A[yY]/
         | 
| 43 | 
            +
                    $stdout.puts "Deleting: #{path_in_dest}"
         | 
| 44 | 
            +
                    FileUtils.rm_rf(path_in_dest)
         | 
| 45 | 
            +
                    Find.prune
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
              }
         | 
| 49 | 
            +
            }
         | 
    
        data/bin/tsh
    ADDED
    
    | @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
            # -*- coding: utf-8 -*-
         | 
| 3 | 
            +
            # tsh is an abbreviation of trash.
         | 
| 4 | 
            +
            # Move files and directories to ~/.myTrash directory.
         | 
| 5 | 
            +
            # Should be safer than direct rm.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            if ARGV.empty?
         | 
| 8 | 
            +
              puts <<-EOS
         | 
| 9 | 
            +
            #
         | 
| 10 | 
            +
            >tsh fileOrDir1 fileOrDir2 ...
         | 
| 11 | 
            +
            #
         | 
| 12 | 
            +
              EOS
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              exit
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            require 'fileutils'
         | 
| 18 | 
            +
            MY_TRASH_DIR = File.join(ENV['HOME'], '.myTrash')
         | 
| 19 | 
            +
            CURRENT_TIME = Time.now.strftime("%y%m%d%H%M%S.")
         | 
| 20 | 
            +
            PREFIX = File.join(MY_TRASH_DIR, CURRENT_TIME)
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            FileUtils.mkdir_p(MY_TRASH_DIR)
         | 
| 23 | 
            +
            puts (ARGV - %w(. ..))\
         | 
| 24 | 
            +
              .select{|path| File.exist?(path)}\
         | 
| 25 | 
            +
              .each{|path| FileUtils.mv(path, PREFIX + File.basename(path))}\
         | 
| 26 | 
            +
              .join("\t")
         | 
    
        data/cmd_tools.gemspec
    ADDED
    
    | @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            require 'ruby_patch'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            gem_name = File.basename(__DIR__)
         | 
| 4 | 
            +
            require "./lib/#{gem_name}/version"
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Gem::Specification.new do |s|
         | 
| 7 | 
            +
              s.files = `git ls-files`.split
         | 
| 8 | 
            +
              s.name = gem_name
         | 
| 9 | 
            +
              s.summary = "Command line tools."
         | 
| 10 | 
            +
              s.version = CmdTools::VERSION
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              s.add_development_dependency 'ruby_patch', '~> 0'
         | 
| 13 | 
            +
              s.author = 'kshramt'
         | 
| 14 | 
            +
              s.description = "Command line tools. tsh: mv to ~/.myTrash. bak: bakup."
         | 
| 15 | 
            +
              s.executables << 'bak'
         | 
| 16 | 
            +
              s.executables << 'tsh'
         | 
| 17 | 
            +
              s.required_ruby_version = '>= 1.9.0'
         | 
| 18 | 
            +
            end
         | 
    
        data/lib/cmd_tools.rb
    ADDED
    
    
    
        metadata
    ADDED
    
    | @@ -0,0 +1,63 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: cmd_tools
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.0.0
         | 
| 5 | 
            +
              prerelease: 
         | 
| 6 | 
            +
            platform: ruby
         | 
| 7 | 
            +
            authors:
         | 
| 8 | 
            +
            - kshramt
         | 
| 9 | 
            +
            autorequire: 
         | 
| 10 | 
            +
            bindir: bin
         | 
| 11 | 
            +
            cert_chain: []
         | 
| 12 | 
            +
            date: 2012-06-24 00:00:00.000000000 Z
         | 
| 13 | 
            +
            dependencies:
         | 
| 14 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 15 | 
            +
              name: ruby_patch
         | 
| 16 | 
            +
              requirement: &72363320 !ruby/object:Gem::Requirement
         | 
| 17 | 
            +
                none: false
         | 
| 18 | 
            +
                requirements:
         | 
| 19 | 
            +
                - - ~>
         | 
| 20 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            +
                    version: '0'
         | 
| 22 | 
            +
              type: :development
         | 
| 23 | 
            +
              prerelease: false
         | 
| 24 | 
            +
              version_requirements: *72363320
         | 
| 25 | 
            +
            description: ! 'Command line tools. tsh: mv to ~/.myTrash. bak: bakup.'
         | 
| 26 | 
            +
            email: 
         | 
| 27 | 
            +
            executables:
         | 
| 28 | 
            +
            - bak
         | 
| 29 | 
            +
            - tsh
         | 
| 30 | 
            +
            extensions: []
         | 
| 31 | 
            +
            extra_rdoc_files: []
         | 
| 32 | 
            +
            files:
         | 
| 33 | 
            +
            - bin/bak
         | 
| 34 | 
            +
            - bin/tsh
         | 
| 35 | 
            +
            - cmd_tools.gemspec
         | 
| 36 | 
            +
            - lib/cmd_tools.rb
         | 
| 37 | 
            +
            - lib/cmd_tools/version.rb
         | 
| 38 | 
            +
            homepage: 
         | 
| 39 | 
            +
            licenses: []
         | 
| 40 | 
            +
            post_install_message: 
         | 
| 41 | 
            +
            rdoc_options: []
         | 
| 42 | 
            +
            require_paths:
         | 
| 43 | 
            +
            - lib
         | 
| 44 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 45 | 
            +
              none: false
         | 
| 46 | 
            +
              requirements:
         | 
| 47 | 
            +
              - - ! '>='
         | 
| 48 | 
            +
                - !ruby/object:Gem::Version
         | 
| 49 | 
            +
                  version: 1.9.0
         | 
| 50 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
              none: false
         | 
| 52 | 
            +
              requirements:
         | 
| 53 | 
            +
              - - ! '>='
         | 
| 54 | 
            +
                - !ruby/object:Gem::Version
         | 
| 55 | 
            +
                  version: '0'
         | 
| 56 | 
            +
            requirements: []
         | 
| 57 | 
            +
            rubyforge_project: 
         | 
| 58 | 
            +
            rubygems_version: 1.8.11
         | 
| 59 | 
            +
            signing_key: 
         | 
| 60 | 
            +
            specification_version: 3
         | 
| 61 | 
            +
            summary: Command line tools.
         | 
| 62 | 
            +
            test_files: []
         | 
| 63 | 
            +
            has_rdoc: 
         |