def pytransform_bootstrap(path=None, capsule=None): path = PYARMOR_PATH if path is None else path licfile = os.path.join(path, 'license.lic') if not os.path.exists(licfile): if not os.access(path, os.W_OK): logging.error( 'Bootstrap need write file "license.lic" to %s, ' 'please run pyarmor with sudo for first time', path) raise RuntimeError('No write permission for target path') shutil.copy(os.path.join(PYARMOR_PATH, 'license.tri'), licfile) libname = dll_name + dll_ext platname = None if not os.path.exists(os.path.join(path, libname)): libpath = os.path.join(path, 'platforms') platname = os.getenv('PYARMOR_PLATFORM') if platname == 'simple': platid = '%s/simple' % pytransform.format_platname() platname = platid else: platid = pytransform.format_platname(platname) if not os.path.exists(os.path.join(libpath, platid, libname)): download_pytransform(platid) logging.info('Bootstrap OK.\n') logging.debug('Build platform is %s', platname) pytransform.pyarmor_init(platname=platname) if capsule is not None and 'register' not in sys.argv[1:2]: if not os.path.exists(capsule): logging.info('Generating public capsule ...') make_capsule(capsule)
def make_runtime(capsule, output, licfile=None, platform=None): myzip = ZipFile(capsule, 'r') if 'pytransform.key' in myzip.namelist(): myzip.extract('pytransform.key', output) else: myzip.extract('pyshield.key', output) myzip.extract('pyshield.lic', output) myzip.extract('product.key', output) if licfile is None: myzip.extract('license.lic', output) else: shutil.copy2(licfile, os.path.join(output, 'license.lic')) if platform is None: libname = dll_name + dll_ext libfile = os.path.join(PYARMOR_PATH, libname) if not os.path.exists(libfile): sysname = pytransform.format_platname() libpath = os.path.join(PYARMOR_PATH, 'platforms') libfile = os.path.join(libpath, sysname, libname) shutil.copy2(libfile, output) else: path = os.path.join(PYARMOR_PATH, 'platforms', platform) for x in os.listdir(path): shutil.copy2(os.path.join(path, x), output) shutil.copy2(os.path.join(PYARMOR_PATH, 'pytransform.py'), output)
def pytransform_bootstrap(path=None, capsule=None): path = PYARMOR_PATH if path is None else path licfile = os.path.join(path, 'license.lic') if not os.path.exists(licfile): if not os.access(path, os.W_OK): logging.error( 'Bootstrap need write file "license.lic" to %s, ' 'please run pyarmor with sudo for first time', path) raise RuntimeError('No write permission for target path') shutil.copy(os.path.join(PYARMOR_PATH, 'license.tri'), licfile) libname = dll_name + dll_ext platname = None if not os.path.exists(os.path.join(path, libname)): libpath = os.path.join(path, 'platforms') platname = os.getenv('PYARMOR_PLATFORM') platid = pytransform.format_platname(platname) if not os.path.exists(os.path.join(libpath, platid, libname)): download_pytransform(platid) logging.info('Bootstrap OK.\n') pytransform.pyarmor_init(platname=platname) if capsule is not None: if not (os.path.exists(capsule) and check_capsule(capsule)): logging.info('Generate global capsule %s', capsule) make_capsule(capsule)
def pytransform_bootstrap(path=None): path = PYARMOR_PATH if path is None else path libname = dll_name + dll_ext if not os.path.exists(os.path.join(path, libname)): libpath = os.path.join(path, 'platforms') sysname = pytransform.format_platname() if not os.path.exists(os.path.join(libpath, sysname, libname)): download_pytransform(libname) logging.info('Bootstrap OK.\n') pytransform.pyarmor_init()
def pytransform_bootstrap(path=None): path = PYARMOR_PATH if path is None else path libname = dll_name + dll_ext if not os.path.exists(os.path.join(path, libname)): libpath = os.path.join(path, 'platforms') sysname = pytransform.format_platname() if not os.path.exists(os.path.join(libpath, sysname, libname)): logging.info('Searching %s for %s ...', libname, plat_name) src = os.path.join(libpath, plat_name, libname) if not os.path.exists(src): raise RuntimeError('No available library for this platform') logging.info('Found: "%s"', src) logging.info('Copy to %s', path) shutil.copy(src, path) logging.info('Bootstrap OK.\n') pytransform.pyarmor_init()
def make_runtime(capsule, output, licfile=None, platform=None, package=False): if package: output = os.path.join(output, 'pytransform') if not os.path.exists(output): os.makedirs(output) logging.info('Generating runtime files to %s', output) myzip = ZipFile(capsule, 'r') if 'pytransform.key' in myzip.namelist(): logging.info('Extract pytransform.key') myzip.extract('pytransform.key', output) else: logging.info('Extract pyshield.key, pyshield.lic, product.key') myzip.extract('pyshield.key', output) myzip.extract('pyshield.lic', output) myzip.extract('product.key', output) if licfile is None: logging.info('Extract license.lic') myzip.extract('license.lic', output) else: logging.info('Copying %s as license file', licfile) shutil.copy2(licfile, os.path.join(output, 'license.lic')) if platform is None: libfile = pytransform._pytransform._name if not os.path.exists(libfile): libname = dll_name + dll_ext libfile = os.path.join(PYARMOR_PATH, libname) if not os.path.exists(libfile): pname = pytransform.format_platname() libpath = os.path.join(PYARMOR_PATH, 'platforms') libfile = os.path.join(libpath, pname, libname) logging.info('Copying %s', relpath(libfile)) shutil.copy2(libfile, output) else: filename = _get_platform_library(platform) logging.info('Copying %s', relpath(filename)) shutil.copy2(filename, output) filename = os.path.join(PYARMOR_PATH, 'pytransform.py') shutil.copy2(filename, os.path.join(output, '__init__.py') if package else output) logging.info('Generate runtime files OK')