Merge branch 'mxmlnkn-master'

This commit is contained in:
Valentin Niess
2024-10-11 11:04:07 +02:00
3 changed files with 55 additions and 2 deletions

View File

@@ -182,6 +182,36 @@ example, `$APPDIR` points to the AppImage mount point at runtime.
`{{ python-executable }} -I` starts a fully isolated Python instance.
{% endraw %}
### Bundling data files
`python-appimage` is also capable of bundling in auxilliary data files directly
into the resulting AppImage. `-x/--extra-data` switch exists for that task.
Consider following example.
```bash
echo -n "foo" > foo
mkdir bar
echo -n "baz" > bar/baz
python-appimage [your regular parameters] -x foo bar/*
```
User data included in such a way becomes accessible to the Python code
contained within the AppImage in a form of regular files under the directory
pointed to by `APPDIR` environment variable. Example of Python 3 script
that reads these exemplary files is presented below.
```python
import os, pathlib
for fileName in ("foo", "baz"):
print((pathlib.Path(os.getenv("APPDIR")) / fileName).read_text())
```
Above code, when executed, would print following output.
```bash
foo
baz
```
## Advanced packaging

View File

@@ -1,8 +1,30 @@
from distutils.dir_util import mkpath as _mkpath, remove_tree as _remove_tree
from distutils.file_util import copy_file as _copy_file
import errno
import os
try:
from distutils.dir_util import mkpath as _mkpath
from distutils.dir_util import remove_tree as _remove_tree
from distutils.file_util import copy_file as _copy_file
except ImportError:
import shutil
def _mkpath(path):
os.makedirs(path, exist_ok=True)
def _remove_tree(path):
shutil.rmtree(path)
def _copy_file(source, destination, update=0):
if os.path.exists(source) and (
not update
or (
(not os.path.exists(destination))
or (os.path.getmtime(source) > os.path.getmtime(destination))
)
):
shutil.copyfile(source, destination)
from .log import debug

View File

@@ -20,5 +20,6 @@ def TemporaryDirectory():
try:
yield tmpdir
finally:
debug('REMOVE', tmpdir)
os.chdir(pwd)
remove_tree(tmpdir)