39 lines
1.2 KiB
Crystal
39 lines
1.2 KiB
Crystal
|
require "./options/config_options"
|
||
|
require "./options/config_init_options"
|
||
|
require "./base"
|
||
|
require "../types/modes"
|
||
|
require "../utils/parser_lines"
|
||
|
|
||
|
module GX::Parsers
|
||
|
class ConfigParser < AbstractParser
|
||
|
def build(parser, ancestors, config)
|
||
|
breadcrumbs = ancestors + "config"
|
||
|
config.config_options = Parsers::Options::ConfigOptions.new
|
||
|
parser.banner = Utils.usage_line(
|
||
|
breadcrumbs,
|
||
|
"Helpers for #{PROGRAM_NAME}'s configuration file",
|
||
|
true
|
||
|
)
|
||
|
parser.separator("\nConfig commands")
|
||
|
|
||
|
parser.on("init", "Create initial mfm configuration") do
|
||
|
config.mode = Types::Mode::ConfigInit
|
||
|
config.config_init_options = Parsers::Options::ConfigInitOptions.new
|
||
|
|
||
|
parser.banner = Utils.usage_line(breadcrumbs + "init", "Create initial mfm configuration")
|
||
|
parser.separator("\nInit options")
|
||
|
|
||
|
parser.on("-p", "--path", "Set vault encrypted path") do |path|
|
||
|
config.config_init_options.try do |opts|
|
||
|
opts.path = path
|
||
|
end
|
||
|
end
|
||
|
|
||
|
parser.separator(Utils.help_line(breadcrumbs + "init"))
|
||
|
end
|
||
|
|
||
|
parser.separator(Utils.help_line(breadcrumbs))
|
||
|
end
|
||
|
end
|
||
|
end
|