lib/milkode/cdstk/cli_cdstk.rb in milkode-0.2.4 vs lib/milkode/cdstk/cli_cdstk.rb in milkode-0.2.9
- old
+ new
@@ -2,48 +2,67 @@
require 'optparse'
require 'milkode/cdstk/cli_cdstksub'
require 'milkode/cdstk/cdstk'
require 'milkode/common/dbdir.rb'
require 'milkode/cdweb/cli_cdweb'
+require 'milkode/grep/cli_grep'
include Milkode
module Milkode
class CLI_Cdstk
def self.execute(stdout, arguments=[])
opt = OptionParser.new <<EOF
#{File.basename($0)} COMMAND [ARGS]
The most commonly used #{File.basename($0)} are:
- init Init db.
add Add packages.
- update Update packages.
- web Run web-app.
- remove Remove packages.
+ cleanup Cleanup garbage records.
+ dir Disp package dir.
+ dump Dump records.
+ grep Print lines matching a pattern
+ init Init db.
list List packages.
+ mcd Print 'mcd' command.
pwd Disp current db.
- cleanup Cleanup garbage records.
rebuild Rebuild db.
- dump Dump records.
+ remove Remove packages.
+ setdb Set default db.
+ update Update packages.
+ web Run web-app.
EOF
+ opt.order!(arguments)
+ subcommand = arguments.shift
+
+ case subcommand
+ when 'grep'
+ Milkode::CLI_Grep.execute(stdout, arguments)
+ else
+ subcommand_default(stdout, opt, subcommand, arguments)
+ end
+ end
+
+ private
+
+ def self.subcommand_default(stdout, opt, subcommand, arguments)
subopt = Hash.new
suboptions = Hash.new
subopt['init'], suboptions['init'] = CLI_Cdstksub.setup_init
subopt['add'] = CLI_Cdstksub.setup_add
- subopt['update'] = OptionParser.new("#{File.basename($0)} update package1 [package2 ...]")
+ subopt['update'], suboptions['update'] = CLI_Cdstksub.setup_update
subopt['remove'], suboptions['remove'] = CLI_Cdstksub.setup_remove
subopt['list'], suboptions['list'] = CLI_Cdstksub.setup_list
subopt['pwd'], suboptions['pwd'] = CLI_Cdstksub.setup_pwd
subopt['cleanup'], suboptions['cleanup'] = CLI_Cdstksub.setup_cleanup
subopt['rebuild'] = OptionParser.new("#{File.basename($0)} rebuild")
subopt['dump'] = OptionParser.new("#{File.basename($0)} dump")
subopt['web'], suboptions['web'] = CLI_Cdstksub.setup_web
-
- opt.order!(arguments)
- subcommand = arguments.shift
-
+ subopt['dir'], suboptions['dir'] = CLI_Cdstksub.setup_dir
+ subopt['setdb'], suboptions['setdb'] = CLI_Cdstksub.setup_setdb
+ subopt['mcd'], suboptions['mcd'] = CLI_Cdstksub.setup_mcd
+
if (subopt[subcommand])
subopt[subcommand].parse!(arguments) unless arguments.empty?
init_default = suboptions['init'][:init_default]
db_dir = select_dbdir(subcommand, init_default)
@@ -52,11 +71,11 @@
case subcommand
when 'init'
FileUtils.mkdir_p db_dir if (init_default)
obj.init
when 'update'
- obj.update(arguments)
+ obj.update(arguments, suboptions[subcommand])
when 'add'
obj.add(arguments)
when 'remove'
obj.remove(arguments, suboptions[subcommand])
when 'list'
@@ -70,20 +89,24 @@
when 'dump'
obj.dump
when 'web'
obj.compatible?
Milkode::CLI_Cdweb.execute_with_options(stdout, suboptions[subcommand])
+ when 'dir'
+ obj.dir(arguments, suboptions[subcommand])
+ when 'setdb'
+ obj.setdb(arguments, suboptions[subcommand])
+ when 'mcd'
+ obj.mcd(arguments, suboptions[subcommand])
end
else
if subcommand
$stderr.puts "#{File.basename($0)}: '#{subcommand}' is not a #{File.basename($0)} command. See '#{File.basename($0)} --help'"
else
stdout.puts opt.help
end
end
end
-
- private
def self.select_dbdir(subcommand, init_default)
if (subcommand == 'init')
if (init_default)
Dbdir.default_dir