Commit 0f6307b

mo <mo.khan@gmail.com>
2018-04-29 19:58:36
use thor to build CLI.
1 parent 23af740
Changed files (3)
exe/del
@@ -1,10 +1,5 @@
 #!/usr/bin/env ruby
 
-require "del"
-require "pathname"
+require "del/cli"
 
-startup_file = Pathname.new(ARGV[0]) if ARGV[0]
-Del.start(
-  dotenv_file: ENV.fetch("DELRC", Pathname.new(Dir.home).join(".delrc")),
-  startup_file: startup_file,
-)
+Del::CLI.start(ARGV)
lib/del/cli.rb
@@ -0,0 +1,18 @@
+require "del"
+require "pathname"
+require "thor"
+
+module Del
+  class CLI < Thor
+    DEFAULT_RC=Pathname.new(Dir.home).join(".delrc")
+    class_option :dotenv_file, default: ENV.fetch("DELRC", DEFAULT_RC)
+
+    desc "server <routes.rb>", "start server"
+    def server(startup_file = nil)
+      Del.start(
+        dotenv_file: options[:dotenv_file],
+        startup_file: startup_file,
+      )
+    end
+  end
+end
del.gemspec
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
 
   spec.add_dependency "dotenv", "~> 2.4"
   spec.add_dependency "xmpp4r", "~> 0.5"
+  spec.add_dependency "thor", "~> 0.20"
   spec.add_development_dependency "bundler", "~> 1.16"
   spec.add_development_dependency "rake", "~> 10.0"
   spec.add_development_dependency "rspec", "~> 3.0"