Sha256: ce9929d4b02dbad817b6fcf502cfcb01065f83b466fb9314651d95e38aa10643

Contents?: true

Size: 738 Bytes

Versions: 1

Compression:

Stored size: 738 Bytes

Contents

module VerySafeRm
  # TODO
  module RM
    def self.do_rm(file, args)
      return if RM.check_bang file
      sleep 2
      system "rm #{args.join ' '} #{file}"
    end

    def self.rm_one(file, args)
      filesystem = `stat -fc %T #{file}`
      if filesystem == 'nilfs' then RM.do_rm file, ['-rvf']
      elsif Dir.empty? file then RM.do_rm file, ['-rfv']
      elsif File.empty? file then RM.do_rm file, ['-fv']
      else RM.do_rm file, ['-iv', *args]
      end
    end

    def self.check_bang(file)
      file.reverse.each_char do |char|
        return false unless char == '!'
        STDERR.print "Did you really want to delete `#{file}? [y/N] "
        return true unless STDIN.gets =~ /^y(es)?$/i
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
very_safe_rm-0.2.3 lib/very_safe_rm/rm_one.rb