Sha256: b73dabddb0535938d1a345204a8b7fb3565a6c4e5f6750ebe16ac545a4714740

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

#! /usr/bin/env ruby
# coding: utf-8

DEFAULT_OUTFILE = '.dirmap.md'

require "optparse"
require "pathname"
require "pp"
require "madowu"

### option analysis
options = {}
op = OptionParser.new
op.banner = [
  "Usage: #{File.basename("#{__FILE__}")} [dir_path]",
  "   Note that indicate directory, not file.",
  "   Default 'dirpath' is '.'"
].join("\n")
op.on("-v"    , "--verbose"    , "Output to stdout too"){ options[:verbose] = true}
op.on("-f"    , "--force"      , "Force output"){ options[:force] = true}
op.on("-k"    , "--kakasi"     , "Sort by Japanese yomi"){ options[:kakasi] = true}
op.parse!(ARGV)

if ARGV.size > 1
  puts op.banner
  exit
end

dir = ARGV[0] || '.'
unless FileTest.directory? dir
  puts op.banner
  exit
end

def should_update?(options, outfile, new_contents)
  return true if options[:force]
  return true unless FileTest.exist? outfile
  return false if new_contents == File.open(outfile, "r").readlines.map{|i| i.chomp}
  #old_contents = File.open(outfile, "r").readlines.map{|i| i.chomp}
  #return false if old_contents == new_contents
  return true
end

outfile = DEFAULT_OUTFILE
contents = Madowu::DirectoryMapper.dirmap(dir, options[:kakasi])

if should_update?(options, outfile, contents)
  io = File.open(outfile, 'w')
  io.puts contents
  puts contents if options[:verbose]
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
madowu-0.0.7 bin/dirmap