Class: Fresco::CLI
- Inherits:
-
Object
show all
- Defined in:
- lib/fresco/cli.rb,
lib/fresco/cli/dev.rb,
lib/fresco/cli/new.rb,
lib/fresco/cli/build.rb,
lib/fresco/cli/release.rb
Defined Under Namespace
Classes: Build, Dev, New, Release
Constant Summary
collapse
- COMMANDS =
{
"new" => "Fresco::CLI::New",
"build" => "Fresco::CLI::Build",
"dev" => "Fresco::CLI::Dev",
"release" => "Fresco::CLI::Release",
}.freeze
Class Method Summary
collapse
Class Method Details
.print_usage ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/fresco/cli.rb', line 40
def self.print_usage
puts <<~USAGE
Usage: fresco <command> [args]
Commands:
new <name> Scaffold a new Fresco app in ./<name>/
build Regenerate generated/* from config + app/
dev Run the CRuby dev loop (build + watch + serve)
release Build a Spinel-compiled binary at ./build/app
Flags:
-h, --help Show this message
-v, --version Show fresco version
USAGE
end
|
.start(argv) ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/fresco/cli.rb', line 15
def self.start(argv)
cmd = argv.first
if cmd.nil? || cmd == "--help" || cmd == "-h"
print_usage
return 0
end
if cmd == "--version" || cmd == "-v"
puts "fresco #{Fresco::VERSION}"
return 0
end
const_name = COMMANDS[cmd]
unless const_name
warn "fresco: unknown command #{cmd.inspect}"
print_usage
return 1
end
require "fresco/cli/#{cmd}"
klass = const_name.split("::").inject(Object) { |m, n| m.const_get(n) }
klass.new.run(argv[1..])
end
|