docmachine-cli/src/cli.cr

52 lines
1.1 KiB
Crystal
Raw Normal View History

require "option_parser"
require "digest/sha256"
require "colorize"
2023-03-25 19:40:52 +00:00
require "./config"
require "./builder/cli"
require "./builder/run"
require "./scaffolder/cli"
require "./planner/cli"
module DocMachine
class Cli
def initialize
end
def start(argv)
2023-03-25 19:40:52 +00:00
config = Config.new
parser = OptionParser.new do |opts|
2023-03-24 15:53:27 +00:00
opts.banner = [
"Usage: #{PROGRAM_NAME} [options]",
"",
"Main options:"
].join("\n")
opts.on("-v", "--verbose", "Enable verbosity") do |verbose|
2023-03-25 19:40:52 +00:00
config.verbose = true
end
opts.on("-h", "--help", "Show this help") do
puts opts
exit
end
2023-03-24 15:53:27 +00:00
opts.separator ""
opts.separator "Commands:"
2023-03-25 19:40:52 +00:00
DocMachine::Builder::Cli.add_options(opts, config)
DocMachine::Scaffolder::Cli.add_options(opts, config)
DocMachine::Planner::Cli.add_options(opts, config)
end
parser.parse(ARGV)
2023-03-25 19:40:52 +00:00
builder = DocMachine::Builder::Run.new(config)
2023-03-24 15:53:27 +00:00
builder.prepare
builder.start
builder.wait
end
end
end