__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
#!/usr/bin/python3 # -*- Mode:Python; indent-tabs-mode:nil; tab-width:4; encoding:utf-8 -*- # # duplicity -- Encrypted bandwidth efficient backup # # Copyright 2002 Ben Escoto <[email protected]> # Copyright 2007 Kenneth Loafman <[email protected]> # # This file is part of duplicity. # # Duplicity is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # Duplicity is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with duplicity; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.nongnu.org/duplicity for more information. # Please send mail to me or the mailing list if you find bugs or have # any suggestions. import sys import os # override locale to avoid bug #682837, until # the logger finally deals with locales cleanly os.environ['LC_ALL']="POSIX" import duplicity.errors from duplicity import log from duplicity import tempdir from duplicity import util from duplicity.dup_main import main from duplicity.gpg import GPGError sys.stdout.reconfigure(errors="surrogateescape") sys.stderr.reconfigure(errors="surrogateescape") def with_tempdir(fn): """ Execute function and guarantee cleanup of tempdir is called @type fn: callable function @param fn: function to execute @return: void @rtype: void """ try: fn() finally: tempdir.default().cleanup() def dup_run(): try: log.setup() util.start_debugger() with_tempdir(main) # Don't move this lower. In order to get an exit # status out of the system, you have to call the # sys.exit() function. Python handles this by # raising the SystemExit exception. Cleanup code # goes here, if needed. except SystemExit as e: # No traceback, just get out util.release_lockfile() sys.exit(e.code) except KeyboardInterrupt as e: # No traceback, just get out log.Info(_("INT intercepted...exiting.")) util.release_lockfile() sys.exit(4) except GPGError as e: # For gpg errors, don't show an ugly stack trace by # default. But do with sufficient verbosity. util.release_lockfile() log.Info(_("GPG error detail: %s") % util.exception_traceback()) log.FatalError(f"{e.__class__.__name__}: {e.args[0]}", log.ErrorCode.gpg_failed, e.__class__.__name__) except duplicity.errors.UserError as e: util.release_lockfile() # For user errors, don't show an ugly stack trace by # default. But do with sufficient verbosity. log.Info(_("User error detail: %s") % util.exception_traceback()) log.FatalError(f"{e.__class__.__name__}: {util.uexc(e)}", log.ErrorCode.user_error, e.__class__.__name__) except duplicity.errors.BackendException as e: util.release_lockfile() # For backend errors, don't show an ugly stack trace by # default. But do with sufficient verbosity. log.Info(_("Backend error detail: %s") % util.exception_traceback()) log.FatalError(f"{e.__class__.__name__}: {util.uexc(e)}", log.ErrorCode.user_error, e.__class__.__name__) except Exception as e: util.release_lockfile() if "Forced assertion for testing" in util.uexc(e): log.FatalError(f"{e.__class__.__name__}: {util.uexc(e)}", log.ErrorCode.exception, e.__class__.__name__) else: # Traceback and that mess log.FatalError(util.exception_traceback(), log.ErrorCode.exception, e.__class__.__name__) if __name__ == "__main__": dup_run()
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| backends | Folder | 0755 |
|
|
| __init__.py | File | 1.01 KB | 0644 |
|
| __main__.py | File | 3.94 KB | 0644 |
|
| _librsync.cpython-313-x86_64-linux-gnu.so | File | 19.75 KB | 0644 |
|
| _librsyncmodule.c | File | 14.17 KB | 0644 |
|
| argparse311.py | File | 94.51 KB | 0644 |
|
| backend.py | File | 28.98 KB | 0644 |
|
| backend_pool.py | File | 13.88 KB | 0644 |
|
| cached_ops.py | File | 1.23 KB | 0644 |
|
| cli_data.py | File | 34.92 KB | 0644 |
|
| cli_main.py | File | 11.43 KB | 0644 |
|
| cli_util.py | File | 14.46 KB | 0644 |
|
| config.py | File | 11.95 KB | 0644 |
|
| diffdir.py | File | 25.33 KB | 0644 |
|
| dup_collections.py | File | 48.53 KB | 0644 |
|
| dup_main.py | File | 65.38 KB | 0644 |
|
| dup_tarfile.py | File | 1.23 KB | 0644 |
|
| dup_temp.py | File | 8.17 KB | 0644 |
|
| dup_time.py | File | 10.14 KB | 0644 |
|
| errors.py | File | 2.66 KB | 0644 |
|
| file_naming.py | File | 16.33 KB | 0644 |
|
| filechunkio.py | File | 2.56 KB | 0644 |
|
| globmatch.py | File | 7.36 KB | 0644 |
|
| gpg.py | File | 17.35 KB | 0644 |
|
| gpginterface.py | File | 22.41 KB | 0644 |
|
| lazy.py | File | 14.6 KB | 0644 |
|
| librsync.py | File | 8.3 KB | 0644 |
|
| log.py | File | 15.78 KB | 0644 |
|
| manifest.py | File | 17.54 KB | 0644 |
|
| patchdir.py | File | 21.26 KB | 0644 |
|
| path.py | File | 27.92 KB | 0644 |
|
| progress.py | File | 13.5 KB | 0644 |
|
| robust.py | File | 2.67 KB | 0644 |
|
| selection.py | File | 28.74 KB | 0644 |
|
| statistics.py | File | 15.45 KB | 0644 |
|
| tempdir.py | File | 10.51 KB | 0644 |
|
| util.py | File | 11.96 KB | 0644 |
|