1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2024-12-26 17:57:59 +00:00

restore some print statements

the heuristics i used are the following:

 1. if we are prompting the use, use print on stderr (input() may
    produce some stuff on stdout, but it's outside the scope of this
    patch). we do not want those prompts to end up on the standard
    output in case we are piping stuff around

 2. if the command is primarily producing output for the user on the
    console (`list`, `info`, `help`), we simply print on the default
    file descriptor.

 3. everywhere else, we use the logging module with varying levels of
    verbosity, as appropriate.
This commit is contained in:
Antoine Beaupré 2015-10-02 11:13:01 -04:00
parent c9b11316ab
commit ca6c52610f
3 changed files with 32 additions and 32 deletions

View file

@ -162,15 +162,15 @@ def do_create(self, args):
if args.stats:
t = datetime.now()
diff = t - t0
logger.warning('-' * 78)
logger.warning('Archive name: %s' % args.archive.archive)
logger.warning('Archive fingerprint: %s' % hexlify(archive.id).decode('ascii'))
logger.warning('Start time: %s' % t0.strftime('%c'))
logger.warning('End time: %s' % t.strftime('%c'))
logger.warning('Duration: %s' % format_timedelta(diff))
logger.warning('Number of files: %d' % archive.stats.nfiles)
logger.warning(archive.stats.print_('This archive:', cache))
logger.warning('-' * 78)
print('-' * 78)
print('Archive name: %s' % args.archive.archive)
print('Archive fingerprint: %s' % hexlify(archive.id).decode('ascii'))
print('Start time: %s' % t0.strftime('%c'))
print('End time: %s' % t.strftime('%c'))
print('Duration: %s' % format_timedelta(diff))
print('Number of files: %d' % archive.stats.nfiles)
print(archive.stats.print_('This archive:', cache))
print('-' * 78)
return self.exit_code
def _process(self, archive, cache, excludes, exclude_caches, skip_inodes, path, restrict_dev,
@ -317,11 +317,12 @@ def do_delete(self, args):
if args.stats:
logger.warning(stats.print_('Deleted data:', cache))
else:
logger.warning("You requested to completely DELETE the repository *including* all archives it contains:")
print("You requested to completely DELETE the repository *including* all archives it contains:", file=sys.stderr)
for archive_info in manifest.list_archive_infos(sort_by='ts'):
logger.warning(format_archive(archive_info))
print(format_archive(archive_info), file=sys.stderr)
if not os.environ.get('BORG_CHECK_I_KNOW_WHAT_I_AM_DOING'):
print("""Type "YES" if you understand this and want to continue.""")
print("""Type "YES" if you understand this and want to continue.""", file=sys.stderr)
# XXX: prompt may end up on stdout, but we'll assume that input() does the right thing
if input('Do you want to continue? ') != 'YES':
self.exit_code = 1
return self.exit_code
@ -365,7 +366,7 @@ def do_list(self, args):
archive = Archive(repository, key, manifest, args.src.archive)
if args.short:
for item in archive.iter_items():
print(remove_surrogates(item[b'path']), file=sys.stderr)
print(remove_surrogates(item[b'path']))
else:
tmap = {1: 'p', 2: 'c', 4: 'd', 6: 'b', 0o10: '-', 0o12: 'l', 0o14: 's'}
for item in archive.iter_items():
@ -393,11 +394,10 @@ def do_list(self, args):
print('%s%s %-6s %-6s %8d %s %s%s' % (
type, mode, item[b'user'] or item[b'uid'],
item[b'group'] or item[b'gid'], size, format_time(mtime),
remove_surrogates(item[b'path']), extra),
file=sys.stderr)
remove_surrogates(item[b'path']), extra))
else:
for archive_info in manifest.list_archive_infos(sort_by='ts'):
print(format_archive(archive_info), file=sys.stderr)
print(format_archive(archive_info))
return self.exit_code
def do_info(self, args):
@ -407,14 +407,14 @@ def do_info(self, args):
cache = Cache(repository, key, manifest, do_files=args.cache_files)
archive = Archive(repository, key, manifest, args.archive.archive, cache=cache)
stats = archive.calc_stats(cache)
logger.warning('Name:', archive.name)
logger.warning('Fingerprint: %s' % hexlify(archive.id).decode('ascii'))
logger.warning('Hostname:', archive.metadata[b'hostname'])
logger.warning('Username:', archive.metadata[b'username'])
logger.warning('Time: %s' % to_localtime(archive.ts).strftime('%c'))
logger.warning('Command line:', remove_surrogates(' '.join(archive.metadata[b'cmdline'])))
logger.warning('Number of files: %d' % stats.nfiles)
logger.warning(stats.print_('This archive:', cache))
print('Name:', archive.name)
print('Fingerprint: %s' % hexlify(archive.id).decode('ascii'))
print('Hostname:', archive.metadata[b'hostname'])
print('Username:', archive.metadata[b'username'])
print('Time: %s' % to_localtime(archive.ts).strftime('%c'))
print('Command line:', remove_surrogates(' '.join(archive.metadata[b'cmdline'])))
print('Number of files: %d' % stats.nfiles)
print(stats.print_('This archive:', cache))
return self.exit_code
def do_prune(self, args):
@ -496,10 +496,10 @@ def do_help(self, parser, commands, args):
if not args.topic:
parser.print_help()
elif args.topic in self.helptext:
print(self.helptext[args.topic], file=sys.stderr)
print(self.helptext[args.topic])
elif args.topic in commands:
if args.epilog_only:
print(commands[args.topic].epilog, file=sys.stderr)
print(commands[args.topic].epilog)
elif args.usage_only:
commands[args.topic].epilog = None
commands[args.topic].print_help()
@ -531,13 +531,13 @@ def preprocess_args(self, args):
('--yearly', '--keep-yearly', 'Warning: "--yearly" has been deprecated. Use "--keep-yearly" instead.')
]
if args and args[0] == 'verify':
print('Warning: "borg verify" has been deprecated. Use "borg extract --dry-run" instead.', file=sys.stderr)
print('Warning: "borg verify" has been deprecated. Use "borg extract --dry-run" instead.')
args = ['extract', '--dry-run'] + args[1:]
for i, arg in enumerate(args[:]):
for old_name, new_name, warning in deprecations:
if arg.startswith(old_name):
args[i] = arg.replace(old_name, new_name)
print(warning, file=sys.stderr)
print(warning)
return args
def run(self, args=None):

View file

@ -74,9 +74,9 @@ def __del__(self):
self.close()
def _confirm(self, message, env_var_override=None):
logger.warning(message)
print(message, file=sys.stderr)
if env_var_override and os.environ.get(env_var_override):
logger.warning("Yes (From {})".format(env_var_override))
print("Yes (From {})".format(env_var_override), file=sys.stderr)
return True
if not sys.stdin.isatty():
return False

View file

@ -196,9 +196,9 @@ def new(cls, allow_empty=False):
logger.info('Remember your passphrase. Your data will be inaccessible without it.')
return passphrase
else:
logger.warning('Passphrases do not match')
print('Passphrases do not match', file=sys.stderr)
else:
logger.warning('Passphrase must not be blank')
print('Passphrase must not be blank', file=sys.stderr)
def __repr__(self):
return '<Passphrase "***hidden***">'