Skip to content

Commit

Permalink
Merge branch 'dotzborro-aux-files'
Browse files Browse the repository at this point in the history
  • Loading branch information
niess committed May 22, 2024
2 parents 9de84d8 + 03bab9b commit 0c66562
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
7 changes: 7 additions & 0 deletions python_appimage/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
__all__ = ['main']


def exists(path):
if not os.path.exists(path):
raise argparse.ArgumentTypeError("could not find: {}".format(path))
return os.path.abspath(path)

def main():
'''Entry point for the CLI
'''
Expand Down Expand Up @@ -73,6 +78,8 @@ def main():
help='force pip in-tree-build',
action='store_true',
default=False)
build_app_parser.add_argument('-x', '--extra-data', type=exists,
help='extra application data (bundled under $APPDIR/)', nargs='+')

list_parser = subparsers.add_parser('list',
description='List Python versions installed in a manylinux image')
Expand Down
15 changes: 13 additions & 2 deletions python_appimage/commands/build/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,16 @@ def _unpack_args(args):
'''Unpack command line arguments
'''
return args.appdir, args.name, args.python_version, args.linux_tag, \
args.python_tag, args.base_image, args.in_tree_build
args.python_tag, args.base_image, args.in_tree_build, \
args.extra_data


_tag_pattern = re.compile('python([^-]+)[-]([^.]+)[.]AppImage')
_linux_pattern = re.compile('manylinux([0-9]+)_' + platform.machine())

def execute(appdir, name=None, python_version=None, linux_tag=None,
python_tag=None, base_image=None, in_tree_build=False):
python_tag=None, base_image=None, in_tree_build=False,
extra_data=None):
'''Build a Python application using a base AppImage
'''

Expand Down Expand Up @@ -287,6 +289,15 @@ def execute(appdir, name=None, python_version=None, linux_tag=None,
'--no-warn-script-location', requirement),
exclude=(deprecation + git_warnings))

# Bundle auxilliary application data
if extra_data is not None:
for path in extra_data:
basename = os.path.basename(path)
log('BUNDLE', basename)
if os.path.isdir(path):
copy_tree(path, 'AppDir/' + basename)
else:
copy_file(path, 'AppDir/')

# Bundle the entry point
entrypoint_path = glob.glob(appdir + '/entrypoint.*')
Expand Down

0 comments on commit 0c66562

Please sign in to comment.