Skip to content

Commit

Permalink
Multiple extra data
Browse files Browse the repository at this point in the history
  • Loading branch information
niess committed May 22, 2024
1 parent a6d0da5 commit 03bab9b
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 11 deletions.
10 changes: 5 additions & 5 deletions python_appimage/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
__all__ = ['main']


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

def main():
Expand Down Expand Up @@ -78,8 +78,8 @@ def main():
help='force pip in-tree-build',
action='store_true',
default=False)
build_app_parser.add_argument('-x', '--extra-files', type=directory,
help='path to directory containing extra files to be baked in')
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
19 changes: 13 additions & 6 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.extra_files
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, extra_files=None):
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,10 +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 files
if extra_files is not None:
log('BUNDLE', os.path.basename(extra_files))
copy_tree(extra_files, 'AppDir/')
# 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 03bab9b

Please sign in to comment.