mirror of
https://github.com/niess/python-appimage.git
synced 2025-08-30 06:10:24 +02:00
Build bare tarball
This commit is contained in:
@@ -79,7 +79,9 @@ def main():
|
||||
build_manylinux_parser.add_argument('abi',
|
||||
help='python ABI (e.g. cp37-cp37m)')
|
||||
build_manylinux_parser.add_argument('-c', '--clean',
|
||||
help='compress the image after extraction', action='store_true')
|
||||
help='clean the cache after extraction', action='store_true')
|
||||
build_manylinux_parser.add_argument('-t', '--tarball',
|
||||
help='build a bare tarball instead of an AppImage', action='store_true')
|
||||
|
||||
build_app_parser = build_subparsers.add_parser('app',
|
||||
description='Build a Python application using a base AppImage')
|
||||
|
@@ -1,9 +1,11 @@
|
||||
import os
|
||||
from pathlib import Path
|
||||
import tarfile
|
||||
import shutil
|
||||
|
||||
from ...appimage import build_appimage
|
||||
from ...manylinux import ensure_image, PythonExtractor
|
||||
from ...utils.log import log
|
||||
from ...utils.tmp import TemporaryDirectory
|
||||
|
||||
|
||||
@@ -13,10 +15,10 @@ __all__ = ['execute']
|
||||
def _unpack_args(args):
|
||||
'''Unpack command line arguments
|
||||
'''
|
||||
return args.tag, args.abi, args.clean
|
||||
return args.tag, args.abi, args.clean, args.tarball
|
||||
|
||||
|
||||
def execute(tag, abi, clean):
|
||||
def execute(tag, abi, clean, tarball):
|
||||
'''Build a Python AppImage using a Manylinux image
|
||||
'''
|
||||
|
||||
@@ -30,7 +32,8 @@ def execute(tag, abi, clean):
|
||||
tag = abi
|
||||
)
|
||||
appdir = Path(tmpdir) / 'AppDir'
|
||||
python_extractor.extract(appdir, appify=True)
|
||||
appify = not tarball
|
||||
python_extractor.extract(appdir, appify=appify)
|
||||
|
||||
fullname = '-'.join((
|
||||
f'{python_extractor.impl}{python_extractor.version.long()}',
|
||||
@@ -38,12 +41,23 @@ def execute(tag, abi, clean):
|
||||
f'{image.tag}_{image.arch}'
|
||||
))
|
||||
|
||||
destination = f'{fullname}.AppImage'
|
||||
build_appimage(
|
||||
appdir = str(appdir),
|
||||
destination = destination
|
||||
)
|
||||
shutil.copy(
|
||||
Path(tmpdir) / destination,
|
||||
Path(pwd) / destination
|
||||
)
|
||||
if tarball:
|
||||
log('COMPRESS', fullname)
|
||||
destination = f'{fullname}.tgz'
|
||||
tar_path = Path(tmpdir) / destination
|
||||
with tarfile.open(tar_path, "w:gz") as tar:
|
||||
tar.add(appdir, arcname=fullname)
|
||||
shutil.copy(
|
||||
tar_path,
|
||||
Path(pwd) / destination
|
||||
)
|
||||
else:
|
||||
destination = f'{fullname}.AppImage'
|
||||
build_appimage(
|
||||
appdir = str(appdir),
|
||||
destination = destination
|
||||
)
|
||||
shutil.copy(
|
||||
Path(tmpdir) / destination,
|
||||
Path(pwd) / destination
|
||||
)
|
||||
|
Reference in New Issue
Block a user