Class: Codger::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/codger/cli.rb

Instance Method Summary collapse

Instance Method Details

#cache(identifier) ⇒ Object



12
13
14
# File 'lib/codger/cli.rb', line 12

def cache identifier
  Manager.default.cache identifier
end

#cachedObject



17
18
19
20
21
# File 'lib/codger/cli.rb', line 17

def cached
  Manager.default.settings[:cached].each do |identifier, _|
    puts identifier
  end
end

#config(name = nil, value = nil) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/codger/cli.rb', line 29

def config(name = nil, value = nil)
  if name
    if value
      Manager.default.global_settings[:config][name] = value
      Manager.default.save_globals
    else
      puts Manager.default.settings[:config][name]
    end
  else
    puts YAML.dump(Manager.default.settings[:config]).lines.drop(1).join
  end
end

#diff(*tags) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/codger/cli.rb', line 67

def diff(*tags)
  Dir.mktmpdir do |dir|
    Manager.default.settings[:runs].each do |info|
      if tags.empty? or (tags & info[:tags]).any?
        generator = Manager.default.generator(info[:generator])
        generator.run dir, info[:params]
      end
    end
    system Manager.default.diff_command(dir, Dir.pwd)
  end
end

#gen(identifier, path = '.') ⇒ Object



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

def gen identifier, path='.'
  path = File.expand_path path
  unless File.exists? path
    FileUtils.mkdir path
    Git.init path
  end
  manager = Manager.new File.join(path, '.codger')
  generator = manager.generator identifier
  puts "Running #{generator.identifier}"
  generator.run path
  manager.record_run generator if options[:record]
end

#historyObject



58
59
60
61
62
63
64
# File 'lib/codger/cli.rb', line 58

def history
  Manager.default.settings[:runs].each do |info|
    puts "#{info[:generator]} [#{info[:tags].join(' ')}]"
    puts Generator.format_params(info[:params])
    puts
  end
end

#repeat(*tags) ⇒ Object



80
81
82
83
84
85
86
87
88
89
90
# File 'lib/codger/cli.rb', line 80

def repeat(*tags)
  Manager.default.settings[:runs].each do |info|
    if tags.empty? or (tags & info[:tags]).any?
      puts "Running #{info[:generator]} [#{info[:tags].join(' ')}]"
      puts Generator.format_params(info[:params])
      puts
      generator = Manager.default.generator(info[:generator])
      generator.run Dir.pwd, info[:params]
    end
  end
end

#uncache(identifier) ⇒ Object



24
25
26
# File 'lib/codger/cli.rb', line 24

def uncache identifier
  Manager.default.uncache identifier
end