class Techinform::CLI
Public Instance Methods
clean(prefix = 'local')
click to toggle source
# File lib/techinform.rb, line 61 def clean(prefix = 'local') puts Backup.new(dry_run: !options[:delete], quiet: options[:quiet]).clean_files(prefix) end
decrypt(type, filename)
click to toggle source
# File lib/techinform.rb, line 44 def decrypt(type, filename) puts "lbzip2 is not found. Single-threaded bzip2 will be used. Consider installing lbzip2" if bzip2 == 'bzip2' restore(type, filename, nil, true) end
deploy(project)
click to toggle source
# File lib/techinform.rb, line 50 def deploy(project) `cd ~/projects/#{project} && git pull origin master && bundle install && cap production deploy` end
restore(type, filename, dbname = nil, just_decrypt = false)
click to toggle source
# File lib/techinform.rb, line 11 def restore(type, filename, dbname = nil, just_decrypt = false) require 'highline' dbname = filename if dbname.nil? if !File.exist?(filename) cli = HighLine.new path = type == 'pg' ? PostgreBackup.new(database: filename).restore_path : MysqlBackup.new(database: filename).restore_path filename = cli.choose(*Dir["#{path}/*"].sort - %w[. ..]) end encrypted = filename.split('.').last == 'gpg' if type == 'pg' if encrypted && just_decrypt puts "Decrypting postgres backup of #{filename}..." `pv --wait #{filename} | gpg2 --decrypt | #{bzip2} > #{File.basename(filename, '.*') + '.bz2'}` elsif encrypted puts "Restoring postgres backup to database #{dbname}..." `pv --wait #{filename} | gpg2 --decrypt | psql #{dbname} > /dev/null` else `pv --wait #{filename} | #{bunzip2} | psql #{dbname} > /dev/null` end else if encrypted && just_decrypt puts "Decrypting mysql backup of #{filename}..." `pv --wait #{filename} | gpg2 --decrypt | #{bzip2} > #{File.basename(filename, '.*') + '.bz2'}` elsif encrypted puts "Restoring mysql backup to database #{dbname}..." `pv --wait #{filename} | gpg2 --decrypt | mysql#{" -u#{ENV['DBUSER']}" if !ENV['DBUSER'].nil?}#{" -p#{ENV['PASSWORD']}" if !ENV['PASSWORD'].nil?} #{dbname}` else `pv --wait #{filename} | #{bunzip2} | mysql#{" -u#{ENV['DBUSER']}" if !ENV['DBUSER'].nil?}#{" -p#{ENV['PASSWORD']}" if !ENV['PASSWORD'].nil?} #{dbname}` end end end