#!/usr/bin/env python # -*- coding: utf-8 -*- # License: Apache-2.0 import argparse import android_backup import sys def _description(): plat = sys.platform supported_platform = plat != 'Pocket PC' and (plat != 'win32' or 'ANSICON' in os.environ) is_a_tty = hasattr(sys.stdout, 'isatty') and sys.stdout.isatty() if not supported_platform or not is_a_tty: desc = r""" \.---./ / . . \ #| |# Android Backup #| |# Packer #|_____|# # # """ else: desc = """ \033[92m \\.---./ / . . \\ #| |# \033[94mAndroid Backup\033[92m #| |# \033[94mPacker\033[92m #|_____|# # #\033[0m """ return desc[1:] # skip empty line def main(): parser = argparse.ArgumentParser(description=_description(), formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument('OUT') parser.add_argument('-p', '--password') parser.add_argument('-s', '--source-dir') parser.add_argument('-e', '--encrypt', action='store_true') args = parser.parse_args() ab = android_backup.AndroidBackup() ab.version = 3 ab.compression = android_backup.CompressionType.ZLIB ab.encryption = android_backup.EncryptionType.NONE if args.encrypt: ab.encryption = android_backup.EncryptionType.AES256 ab.pack( fname=args.OUT, source_dir=args.source_dir, password=args.password ) if __name__ == "__main__": main()