docmachine-utils/src/cli.cr
Glenn Y. Rolland b8c887682b
Some checks failed
continuous-integration/drone/push Build is failing
feat: Add support for scaffold
2023-03-27 16:01:20 +02:00

60 lines
1.3 KiB
Crystal

require "option_parser"
require "digest/sha256"
require "colorize"
require "./config"
require "./builder/cli"
require "./builder/run"
require "./scaffolder/cli"
require "./planner/cli"
module DocMachine
class Cli
def initialize
end
def start(args)
config = Config.new
commands = [] of Proc(Nil)
parser = OptionParser.new do |opts|
opts.banner = [
"Usage: #{PROGRAM_NAME} [options]",
"",
"Main options:"
].join("\n")
opts.on("-v", "--verbose", "Enable verbosity") do |verbose|
config.verbose = true
end
opts.on("-h", "--help", "Show this help") do
puts opts
exit
end
opts.separator ""
opts.separator "Commands:"
DocMachine::Builder::Cli.add_options(opts, args, config, commands)
DocMachine::Scaffolder::Cli.add_options(opts, args, config, commands)
DocMachine::Planner::Cli.add_options(opts, args, config, commands)
end
parser.parse(args)
puts commands
if commands.size > 0
commands.each do |command|
# puts "== Running #{command}"
command.call()
end
else
puts parser.to_s
STDOUT.puts ""
STDERR.puts "ERROR: no command defined"
end
end
end
end