Class: Jeanine::CLI

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

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ CLI

Returns a new instance of CLI.



5
6
7
# File 'lib/jeanine/cli.rb', line 5

def initialize(args)
  @args = args
end

Instance Method Details

#command_new!Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/jeanine/cli.rb', line 17

def command_new!
  $stdout.puts("Creating new app #{@args[1]}")
  FileUtils.mkdir("#{@args[1]}") unless Dir.exists?("#{@args[1]}")
  FileUtils.mkdir("#{@args[1]}/config") unless Dir.exists?("#{@args[1]}/config")
  FileUtils.mkdir("#{@args[1]}/tmp") unless Dir.exists?("#{@args[1]}/tmp")
  FileUtils.mkdir("#{@args[1]}/tmp/pids") unless Dir.exists?("#{@args[1]}/tmp/pids")
  FileUtils.touch("#{@args[1]}/tmp/pids/.keep") unless File.exists?("#{@args[1]}/tmp/pids/.keep")
  relative_dir = "#{__dir__}/generator/new"
  Dir.glob("#{__dir__}/generator/new/**/*.*").each do |file|
    new_dir = file.gsub(relative_dir, "#{@args[1]}")[0...-3]
    FileUtils.copy_file(file, new_dir)
  end
  relative_dir = "#{__dir__}/generator/new/config"
  Dir.glob("#{__dir__}/generator/new/config/**/*.*").each do |file|
    new_dir = file.gsub(relative_dir, "#{@args[1]}/config")[0...-3]
    FileUtils.copy_file(file, new_dir)
  end
  $stdout.puts("Created #{@args[1]}!")
end

#executeObject



9
10
11
12
13
14
15
# File 'lib/jeanine/cli.rb', line 9

def execute
  if @args[0] == 'new'
    command_new!
  else
    $stdout.puts "I don't know how to `#{@args[0]}`. Maybe you meant `new`?"
  end
end