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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/ey_backup/cli.rb', line 22
def opt_parse(argv)
options = {}
opts = OptionParser.new do |opts|
opts.version = EY::CloudServer::VERSION
opts.banner = "Usage: eybackup [-flag] [argument]"
opts.define_head "eybackup: manage dump (mysqldump/pg_dump) style backups of your database."
opts.separator '*'*80
opts.on("-l", "--list-backup DATABASE", "List mysql backups for DATABASE") do |db|
if db == "all"
db = nil
end
options[:db] = db
options[:command] = :list
end
opts.on("-n", "--new-backup", "Create new mysql backup") do
options[:command] = :new_backup
end
opts.on("-c", "--config CONFIG", "Use config file.") do |config|
options[:config] = config
end
opts.on("-b", "--bucket BUCKET", "Override default S3 bucket name. (Be Careful!)") do |bucket|
options[:backup_bucket] = bucket
end
opts.on("-t", "--tmp_dir TMPDIR", "Use the given directory for temporary storage.") do |tmp_dir|
options[:tmp_dir] = tmp_dir
end
opts.on("-d", "--download BACKUP_INDEX", "download the backup specified by index. Run eybackup -l to get the index.") do |index_and_db|
options[:command] = :download
db, index = split_index(index_and_db)
options[:index] = index
options[:db] = db
end
opts.on("-e", "--engine DATABASE_ENGINE", "The database engine. ex: mysql, postgres.") do |engine|
options[:engine] = engine
end
opts.on("-r", "--restore BACKUP_INDEX", "Download and apply the backup specified by index WARNING! will overwrite the current db with the backup. Run eybackup -l to get the index.") do |index_and_db|
options[:command] = :restore
db, index = split_index(index_and_db)
options[:index] = index
options[:db] = db
end
opts.on("-k", "--key KEYID", "Public key ID to use for the backup operation") do |key_id|
options[:key_id] = key_id
end
opts.on("-q", "--quiet", "Supress output to STDOUT") do
options[:quiet] = true
end
opts.on("-s", "--split_size INTEGER", "Maximum size of a single backup file before splitting.") do |split_size|
options[:split_size] = split_size.to_i
end
end
opts.parse!(argv)
options
end
|