Class: Lifer::CLI
- Inherits:
-
Object
- Object
- Lifer::CLI
- Defined in:
- lib/lifer/cli.rb
Overview
This class is the entrypoint for Lifer's commandline interface.
Constant Summary collapse
- BANNER_ERB =
The core CLI help text lives in a template file.
File.read("%s/lib/lifer/templates/cli.txt.erb" % Lifer.gem_root)
- SUBCOMMANDS =
This constant tracks the supported Lifer CLI subcommands.
Key: name Value: description { build: I18n.t("cli.subcommands.build"), help: I18n.t("cli.subcommands.help"), serve: I18n.t("cli.subcommands.serve") }
Instance Attribute Summary collapse
-
#args ⇒ Object
Returns the value of attribute args.
-
#parser ⇒ Object
Returns the value of attribute parser.
-
#subcommand ⇒ Object
Returns the value of attribute subcommand.
Class Method Summary collapse
-
.start! ⇒ void
This method parses the given CLI subcommands and arguments, and then starts the Lifer program as requested.
Instance Method Summary collapse
-
#initialize ⇒ CLI
constructor
A new instance of CLI.
-
#start! ⇒ void
Parses the user-provided CLI arguments and handles any requested commands.
Constructor Details
#initialize ⇒ CLI
Returns a new instance of CLI.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/lifer/cli.rb', line 35 def initialize @subcommand, @args = user_input @parser = OptionParser.new do |parser| parser. = ERB.new(BANNER_ERB).result parser.on "-cCONFIG", "--config=CONFIG", topt(:config) do |config| @config_file = config end parser.on "-d", "--dump-default-config", topt(:dump_default_config) do |_| puts File.read(Lifer::Config::DEFAULT_CONFIG_FILE) exit end parser.on "-pPORT", "--port=PORT", topt(:port) do |port| @dev_server_port = Integer port rescue => exception raise I18n.t("cli.bad_port", exception:) end parser.on "-rROOT", "--root=ROOT", topt(:root) do |root| @root = root end end end |
Instance Attribute Details
#args ⇒ Object
Returns the value of attribute args.
33 34 35 |
# File 'lib/lifer/cli.rb', line 33 def args @args end |
#parser ⇒ Object
Returns the value of attribute parser.
33 34 35 |
# File 'lib/lifer/cli.rb', line 33 def parser @parser end |
#subcommand ⇒ Object
Returns the value of attribute subcommand.
33 34 35 |
# File 'lib/lifer/cli.rb', line 33 def subcommand @subcommand end |
Class Method Details
.start! ⇒ void
This method returns an undefined value.
This method parses the given CLI subcommands and arguments, and then starts the Lifer program as requested.
30 |
# File 'lib/lifer/cli.rb', line 30 def start! = self.new.start! |
Instance Method Details
#start! ⇒ void
This method returns an undefined value.
Parses the user-provided CLI arguments and handles any requested commands.
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/lifer/cli.rb', line 65 def start! parser.parse! args brain = Lifer.brain(**{root: @root, config_file: @config_file}.compact) if brain.root == Lifer.gem_root Lifer::Message.error("cli.pwd_is_gem_root", root: brain.root) return end brain.require_user_provided_ruby_files! case subcommand when :build then Lifer.build! when :help then parser.parse!(["--help"]) when :serve then Lifer::Dev::Server.start!(port: @dev_server_port) else puts I18n.t( "cli.no_subcommand", subcommand: Lifer::Utilities.bold_text(subcommand), default_command: Lifer::Utilities.bold_text("lifer build") ) parser.parse!(args) && Lifer.build! end end |