Sha256: aa5ddfe32c9af8ea7ec9a1930b44e71ea397a32d7a079a08dc054d117e88c228

Contents?: true

Size: 1.34 KB

Versions: 44

Compression:

Stored size: 1.34 KB

Contents

#!/usr/bin/env ruby

require 'tins/go'
include Tins::GO
require 'tins/secure_write'
include Tins::SecureWrite
require 'tins/find'
include Tins::Find
require 'utils'

class ::File
  include Utils::FileXt
end

def usage
  puts <<-EOT
Usage: #{File.basename($0)} [OPTS] [PATHS]

PATHS are the directory and file paths that are search for files to be
stripped.

Options are

  -I SUFFIXES list of suffixes
  -h          display this help

Version is #{File.basename($0)} #{Utils::VERSION}.
  EOT
  exit 1
end

args = go 'I:h'
args['h'] and usage

paths = ARGV.empty? ?  %w[.] : ARGV
paths = paths.map { |p| File.expand_path(p) }

suffix = args['I'].ask_and_send(:split, /[\s,]+/).to_a

config = Utils::Config::ConfigFile.new
config.configure_from_paths

find(*(paths + [ { :suffix => suffix} ])) do |filename|
  bn, s = File.basename(filename), File.stat(filename)
  s.symlink? and next
  if s.directory?
    config.strip_spaces.prune?(bn) and prune
    next
  end
  s.file? or next
  config.strip_spaces.skip?(bn) and next
  File.ascii?(filename) or next
  STDOUT.puts "Stripping spaces from #{filename.inspect}."
  secure_write(filename) do |output|
    File.open(filename) do |file|
      old_mode = file.stat.mode
      file.each do |line|
        line.gsub!(/[ \t\v]+$/, '')
        output.write line
      end
      File.chmod old_mode, output.path
    end
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
utils-0.0.98 bin/strip_spaces
utils-0.0.97 bin/strip_spaces
utils-0.0.96 bin/strip_spaces
utils-0.0.95 bin/strip_spaces
utils-0.0.94 bin/strip_spaces
utils-0.0.93 bin/strip_spaces
utils-0.0.92 bin/strip_spaces
utils-0.0.91 bin/strip_spaces
utils-0.0.90 bin/strip_spaces
utils-0.0.89 bin/strip_spaces
utils-0.0.88 bin/strip_spaces
utils-0.0.87 bin/strip_spaces
utils-0.0.86 bin/strip_spaces
utils-0.0.85 bin/strip_spaces
utils-0.0.84 bin/strip_spaces
utils-0.0.83 bin/strip_spaces
utils-0.0.82 bin/strip_spaces
utils-0.0.81 bin/strip_spaces
utils-0.0.80 bin/strip_spaces
utils-0.0.79 bin/strip_spaces