def do_snapshots(self, params):
'''Manages workspace snapshots'''
if not params:
self.help_snapshots()
return
params = params.split()
arg = params.pop(0).lower()
if arg == 'list':
snapshots = self._get_snapshots()
if snapshots:
self.table([[x] for x in snapshots], header=['Snapshots'])
else:
self.output('This workspace has no snapshots.')
elif arg == 'take':
from datetime import datetime
snapshot = 'snapshot_%s.db' % (datetime.strftime(datetime.now(), '%Y%m%d%H%M%S'))
src = os.path.join(self.workspace, 'data.db')
dst = os.path.join(self.workspace, snapshot)
shutil.copyfile(src, dst)
self.output('Snapshot created: %s' % (snapshot))
elif arg == 'load':
if len(params) == 1:
# warn about overwriting current state
if params[0] in self._get_snapshots():
src = os.path.join(self.workspace, params[0])
dst = os.path.join(self.workspace, 'data.db')
shutil.copyfile(src, dst)
self.output('Snapshot loaded: %s' % (params[0]))
else:
self.error('No snapshot named \'%s\'.' % (params[0]))
else: print('Usage: snapshots [load] <name>')
elif arg == 'delete':
if len(params) == 1:
if params[0] in self._get_snapshots():
os.remove(os.path.join(self.workspace, params[0]))
self.output('Snapshot removed: %s' % (params[0]))
else:
self.error('No snapshot named \'%s\'.' % (params[0]))
else: print('Usage: snapshots [delete] <name>')
else:
self.help_snapshots()
评论列表
文章目录