Class: Parameter

Inherits:
Object
  • Object
show all
Defined in:
lib/container/parameter.rb

Class Method Summary collapse

Class Method Details

.parse(options) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/container/parameter.rb', line 4

def self.parse(options)
  args = {}

  opt_parser = OptionParser.new do |opts|

    opts.banner = <<BANNER

Usage: #{File.basename($0)} [options] container_names

Back up or restore container assets base on docker-compose label configuration
Handles:
* volumes
* databases
* mapped directories

BANNER

    args[:filename] = 'docker-compose.yml'
    opts.on("-f", "--file=DOCKERFILE", "Docker file with backup/restore configuration") do |n|
      args[:filename] = n
    end
    args[:backup] = true
    opts.on("-b", "--backup", "Backup") do |n|
      args[:backup] = n
    end
    args[:directory] = "backup/backup_#{Time.now.strftime('%Y%m%dT%H%M%S')}"
    opts.on("-d", "--directory=BACKUP_DIRECTORY", "Backup") do |n|
      args[:directory] = n
    end
    opts.on("-r", "--restore", "Restore") do |n|
      args[:restore] = n
    end
    opts.on("--review", "Review backup/restore actions") do |n|
      args[:review] = n
    end
    opts.on("--details", "Review backup/restore actions with commands to be executed") do |n|
      args[:details] = n
    end

    opts.on("-h", "--help", "Prints this help") do
      puts opts
      exit
    end
  end

  opt_parser.parse!(options)
  return args.merge({containers: ARGV})
rescue OptionParser::InvalidOption, OptionParser::MissingArgument => e

  puts ["\nError:\n------\n", e.message, "\n------\n"]
  opt_parser.parse!(['-h'])

end