Module: Marko::CLI

Extended by:
CLI
Included in:
CLI
Defined in:
lib/marko/cli.rb

Instance Method Summary collapse

Instance Method Details



57
58
59
60
# File 'lib/marko/cli.rb', line 57

def banner
  puts "#{BANNER}\nUsage:"
  PARSER.each{|_, cmd| puts "\n  #{cmd}"}
end

#compile(args = ARGV) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/marko/cli.rb', line 42

def compile(args = ARGV)
  unless storage.marko_home?
    puts "Marko directory required!"
    return
  end
  kwargs = options(:compile, args)
  verbose = kwargs.delete(:verbose) { false }
  pulsefn = method(verbose ? :pulse_verbose : :pulse_concise)
  result = Compile.(**kwargs, &pulsefn)
  puts "compiled #{result}\nSuccess!"
rescue Marko::Assembler::Failure => e
  puts "Assembler failed with #{e.errors.size} #{e.message}"
  puts "Failure"
end

#punch(dir, args = ARGV) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/marko/cli.rb', line 11

def punch(dir, args = ARGV)
  if Dir.exist?(dir)
    puts "Directory '#{dir}' already exist!"
    return
  end
  storage.punch(dir)
  puts "Marko directory created!"
  log = Dir.chdir(dir) { Dir.glob('**/*') }
  puts log.map{ "  created #{dir}/#{_1}" }.join(?\n)
  kwargs = options(:new, args)
  editor = kwargs.fetch(:editor, '')
  Dir.chdir(dir) { `#{editor} .` } unless editor.empty?
end

#punch_demo(args = ARGV) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/marko/cli.rb', line 25

def punch_demo(args = ARGV)
  # pp options(:demo, args)
  log = storage.punch_demo
  puts "Marko Demo copied!"
  puts log.map{"  #{_1}"}.join(?\n)

  kwargs = options(:demo, args)
  editor = kwargs.fetch(:editor, '')
  Dir.chdir(log) { `#{editor} .` } unless editor.empty?
end

#punch_samples(args = ARGV) ⇒ Object



36
37
38
39
40
# File 'lib/marko/cli.rb', line 36

def punch_samples(args = ARGV)
  log = storage.punch_samples
  puts "Marko Samples copied!"
  puts log.map{"  #{_1}"}.join(?\n)
end