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
|
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
|
: 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:
|
Restore Flags:
|
||||||
-o | --output-file <file> : Used to provide an alternate restoral path for the restore function
|
-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
|
end
|
||||||
i=0
|
i=0
|
||||||
case ARGV[i]
|
case ARGV[i]
|
||||||
when 'search', 'get', 'restore', 'backup'
|
when 'search', 'get', 'restore', 'backup', 'delete'
|
||||||
$CONFIG[:action]=ARGV[i]
|
$CONFIG[:action]=ARGV[i]
|
||||||
log "$CONFIG[:action] was set to #{ARGV[i]}"
|
log "$CONFIG[:action] was set to #{ARGV[i]}"
|
||||||
log "user provided search action ARGV[i.next] == #{ARGV[i.next]}"
|
log "user provided search action ARGV[i.next] == #{ARGV[i.next]}"
|
||||||
@ -285,6 +286,9 @@ while i < ARGV.count
|
|||||||
usage
|
usage
|
||||||
exit
|
exit
|
||||||
end
|
end
|
||||||
|
when '-d', '--debug'
|
||||||
|
log "#{ARGV[i]} as specified, and the $CONFIG[:debug] flag was already enabled"
|
||||||
|
i+=1
|
||||||
|
|
||||||
when '-b', '--bucket'
|
when '-b', '--bucket'
|
||||||
log "user provided ARGV[i.next] == #{ARGV[i.next]}"
|
log "user provided ARGV[i.next] == #{ARGV[i.next]}"
|
||||||
@ -413,6 +417,54 @@ class BucketEntry
|
|||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
||||||
class Bucket
|
class Bucket
|
||||||
@ -648,6 +700,22 @@ def backup_file (bucket)
|
|||||||
puts "File #{$CONFIG[:search_term]} was backed up to #{entry_dir}"
|
puts "File #{$CONFIG[:search_term]} was backed up to #{entry_dir}"
|
||||||
end
|
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
|
# END: Work Functions
|
||||||
|
|
||||||
|
|
||||||
@ -674,6 +742,9 @@ if __FILE__ == $0
|
|||||||
|
|
||||||
when 'backup'
|
when 'backup'
|
||||||
backup_file bucket
|
backup_file bucket
|
||||||
|
|
||||||
|
when 'delete'
|
||||||
|
delete_entry bucket
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user