Class: StackCar::HammerOfTheGods

Inherits:
Thor
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/stack_car/cli.rb

Instance Method Summary collapse

Instance Method Details

#bundle_exec(*args) ⇒ Object



34
35
36
# File 'lib/stack_car/cli.rb', line 34

def bundle_exec(*args)
  run("docker-compose exec #{options[:service]} bundle exec #{args.join(' ')}")
end

#console(*args) ⇒ Object



41
42
43
# File 'lib/stack_car/cli.rb', line 41

def console(*args)
  run("docker-compose exec #{options[:service]} bundle exec rails console #{args.join(' ')}")
end

#dockerize(dir = nil) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/stack_car/cli.rb', line 61

def dockerize(dir=nil)
  if dir
    Dir.chdir(dir)
  end
  project_name = File.basename(File.expand_path(dir))
  db_libs = []
  db_libs << "libpq-dev postgresql-client" if options[:postgres]
  db_libs << "mysql-client" if options[:mysql]
  db_libs << "libc6-dev libreoffice imagemagick unzip" if options[:fcrepo]
  db_libs = db_libs.join(' ')

  template_path = File.join(File.dirname(__FILE__), '..', '..', 'templates')
  ['.dockerignore', 'Dockerfile', 'docker-compose.yml', 'docker-compose-prod.yml', '.gitlab-ci.yml', '.env'].each do |template|

    renderer = ERB.new(File.read(File.join(template_path, template + '.erb')), 0, '-')
    File.write(template, renderer.result(binding))
  end
end

#exec(*args) ⇒ Object



27
28
29
# File 'lib/stack_car/cli.rb', line 27

def exec(*args)
  run("docker-compose exec #{options[:service]} #{args.join(' ')}")
end

#stopObject



15
16
17
# File 'lib/stack_car/cli.rb', line 15

def stop
  run("docker-compose stop #{options[:service]}")
end

#upObject



9
10
11
# File 'lib/stack_car/cli.rb', line 9

def up
  run("docker-compose up --build --remove-orphans #{options[:service]}")
end

#walk(*args) ⇒ Object



21
22
23
# File 'lib/stack_car/cli.rb', line 21

def walk(*args)
  run("docker-compose run #{options[:service]} #{args.join(' ')}")
end