Finished feature
This commit is contained in:
parent
a41ad51d04
commit
26d03ddfea
75
bucket-tool
75
bucket-tool
@ -29,7 +29,8 @@ Actions:
|
||||
restore <value> : Restore previous state of file stored in bucket. Value can be hash or filename/filepath
|
||||
: Note: To restore to an alternate path you will need to provide the path via the -o flag
|
||||
:
|
||||
backup <file> : Backup the file to the bucket (will work relatively unless full path is provided)
|
||||
backup <file> : Backup the file to the bucket
|
||||
delete <hash> : Delete the entry from the bucket
|
||||
|
||||
Restore Flags:
|
||||
-o | --output-file <file> : Used to provide an alternate restoral path for the restore function
|
||||
@ -235,7 +236,7 @@ if not (ARGV & ['-d', '--debug']).empty?
|
||||
end
|
||||
i=0
|
||||
case ARGV[i]
|
||||
when 'search', 'get', 'restore', 'backup'
|
||||
when 'search', 'get', 'restore', 'backup', 'delete'
|
||||
$CONFIG[:action]=ARGV[i]
|
||||
log "$CONFIG[:action] was set to #{ARGV[i]}"
|
||||
log "user provided search action ARGV[i.next] == #{ARGV[i.next]}"
|
||||
@ -285,6 +286,9 @@ while i < ARGV.count
|
||||
usage
|
||||
exit
|
||||
end
|
||||
when '-d', '--debug'
|
||||
log "#{ARGV[i]} as specified, and the $CONFIG[:debug] flag was already enabled"
|
||||
i+=1
|
||||
|
||||
when '-b', '--bucket'
|
||||
log "user provided ARGV[i.next] == #{ARGV[i.next]}"
|
||||
@ -413,6 +417,54 @@ class BucketEntry
|
||||
end
|
||||
end
|
||||
|
||||
def delete
|
||||
returncode = true
|
||||
log "User has chosen to delete this BucketEntry"
|
||||
|
||||
Dir.chdir(@entry_dir){
|
||||
log "Changed to #{@entry_dir} to delete children files"
|
||||
Dir.children(@entry_dir).each{|file|
|
||||
log "Deleting #{file}"
|
||||
if File.unlink(file)
|
||||
log "#{file} deleted"
|
||||
else
|
||||
puts "There was an issue deleting #{File.expand_path(file)}"
|
||||
exit
|
||||
end
|
||||
}
|
||||
}
|
||||
|
||||
log "Deleting #{@entry_dir}"
|
||||
if Dir.delete(@entry_dir)
|
||||
log "Deleted #{@entry_dir}"
|
||||
else
|
||||
puts "There was an issue when attempting to delete #{@entry_dir}"
|
||||
end
|
||||
|
||||
dir = @entry_dir
|
||||
|
||||
log "Beginning to delete trailing dirs unless one has children other than those that make up #{File.dirname(@entry_dir)}"
|
||||
for i in 1..8
|
||||
dir = File.dirname(dir)
|
||||
log "Beginning to delete #{dir}"
|
||||
children = Dir.children(dir)
|
||||
log "Dir[#{dir}] children found to be #{children.join(',')}"
|
||||
if children.empty?
|
||||
if Dir.delete(dir)
|
||||
log "Deleted #{dir}"
|
||||
else
|
||||
puts "There was an issue when attempting to delete #{dir}"
|
||||
exit
|
||||
end
|
||||
else
|
||||
log "#{dir} showed to contain another child directory. Not deleting and breaking loop"
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
returncode
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class Bucket
|
||||
@ -648,6 +700,22 @@ def backup_file (bucket)
|
||||
puts "File #{$CONFIG[:search_term]} was backed up to #{entry_dir}"
|
||||
end
|
||||
|
||||
def delete_entry (bucket)
|
||||
if bucket.entries.has_key? $CONFIG[:search_term]
|
||||
entry = bucket.entries[$CONFIG[:search_term]]
|
||||
else
|
||||
puts "BucketEntry[#{$CONFIG[:search_term]}] Does not exist. Please make sure you provided the correct hash value"
|
||||
end
|
||||
|
||||
puts "Corresponding Entry: #{entry.info}"
|
||||
if get_verification "Are you sure you want to delete BucketEntry[#{entry.hash}]? "
|
||||
if get_verification "This cannot be undone. Are you sure you want to continue?: "
|
||||
entry.delete
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# END: Work Functions
|
||||
|
||||
|
||||
@ -674,6 +742,9 @@ if __FILE__ == $0
|
||||
|
||||
when 'backup'
|
||||
backup_file bucket
|
||||
|
||||
when 'delete'
|
||||
delete_entry bucket
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user