Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

aroundthecode / android-backup   python

Repository URL to install this package:

/ pack.py

#!/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()