Class: MongoBacker::Cli

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

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Actions

#ask_with_default, #gzip_directory, #list_backups, #run_mongodump, #upload_to_s3

Class Method Details

.source_rootObject



8
9
10
# File 'lib/mongo_backer/cli.rb', line 8

def self.source_root
  File.dirname(__FILE__)
end

Instance Method Details

#backupObject



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/mongo_backer/cli.rb', line 27

def backup
  config = MongoBacker::Configuration.new options[:config]
  
  backup_dir = run_mongodump(config)
  
  backup_file = gzip_directory(backup_dir)
  
  upload_to_s3(backup_file, config)
  
  FileUtils.rm_rf backup_dir
  FileUtils.rm backup_file
end

#initObject



13
14
15
16
17
18
19
20
21
22
# File 'lib/mongo_backer/cli.rb', line 13

def init
  @host = ask_with_default("mongo host: ", "localhost")
  @port = ask_with_default("mongo port: ", "27017")
  @mongodump = ask_with_default("mongodump path: ", "/usr/bin/mongodump")
  @access_key_id = ask("s3 access key id:")
  @secret_access_key = ask("s3 secret access key:")
  @bucket = ask("s3 bucket:")
  
  template('templates/config.tt', "mongobacker.yml")
end

#listObject



43
44
45
46
# File 'lib/mongo_backer/cli.rb', line 43

def list
  config = MongoBacker::Configuration.new options[:config]
  list_backups config
end

#versionObject



49
50
51
# File 'lib/mongo_backer/cli.rb', line 49

def version()
    puts "mongobacker version #{MongoBacker::Version}"
end