Metadata-Version: 2.1
Name: pyproject-appimage
Version: 4.0
Summary: Generate AppImages from your Python projects
Author-email: JakobDev <jakobdev@gmx.de>
License: BSD-2-Clause
Project-URL: Downloads, https://codeberg.org/JakobDev/pyproject-appimage/releases
Project-URL: Issues, https://codeberg.org/JakobDev/pyproject-appimage/issues
Project-URL: Source, https://codeberg.org/JakobDev/pyproject-appimage
Project-URL: Donation, https://ko-fi.com/jakobdev
Keywords: JakobDev,AppImage
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Environment :: Other Environment
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Games/Entertainment
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests
Requires-Dist: desktop-entry-lib
Requires-Dist: tomli; python_version < "3.11"

# pyproject-appimage

![PyPI - License](https://img.shields.io/pypi/l/pyproject-appimage)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pyproject-appimage)
![PyPI - Downloads](https://img.shields.io/pypi/dm/pyproject-appimage)

pyproject-appimage allows you to create a AppImage in a few seconds. To get started, just add this to your pyproject.toml:

```toml
[tool.pyproject-appimage]
script = "my-app"
output = "MyApp.AppImage"
```
`script` is here the script that should be run when executing the AppImage. You can use the `project.scripts` section of your pyproject.toml or the `entry_points` argument of your setup.py to create scripts.

To create a AppImage, just run this command in your project directory:
```
pyproject-appimage
```

## Pyproject options
The following options can be used in your pyproject.toml:

| Option | Type |Description |
| ------ | ------ | ------ |
| script | string | The script that should be run |
| output | string | The filename of your AppImage. Can be overwritten with the cli. |
| icon   | string | The path to your Icon |
| rename-icon | string | Give your Icon another name inside the AppImage |
| desktop-entry | string | The path to your .desktop file |
| rename-desktop-entry | string | Give your .desktop file another name inside the AppImage |
| gettext-desktop-entry | bool | If your .desktop file should be translated using gettest |
| appstream | string | The path to your AppStream file |
| rename-appstream | string | Give your AppStream file another name inside the AppImage |
| gettext-appstream | bool | If your AppStream file should be translated using gettest |
| gettext-directory | string | The path to your gettext directory |
| python-version | string | The Python version that is used. Default is your current version. Can be overwritten with the cli. |
| updateinformation | string | The [update information](https://github.com/AppImage/AppImageSpec/blob/master/draft.md#update-information)
| compression | string | The Squashfs compression
| additional-packages | list of strins | A list of packages that should also be installed

Note: All paths are relativ to your project directory

## Cli options
pyproject-appimage provides the following cli options:
```
usage: pyproject-appimage [-h] [--output OUTPUT] [--project-dir PROJECT_DIR] [--python-version PYTHON_VERSION] [--appimagekit-url APPIMAGEKIT_URL] [--work-dir WORK_DIR]
                          [--list-available-versions] [--no-fuse] [-v]

options:
  -h, --help            show this help message and exit
  --output OUTPUT       Sets the putput filename
  --project-dir PROJECT_DIR
                        Sets the project dir
  --python-version PYTHON_VERSION
                        Set a custom Python version
  --appimagekit-url APPIMAGEKIT_URL
                        Set a custom download URL for AppImageKit
  --work-dir WORK_DIR   Set a custom directory to work in. Existing Directories will be removed.
  --list-available-versions
                        Print available Python versions and exit
  --no-fuse             Use this, if FUSE is not available e.g. inside a Docker container
  -v, --version         Prints the version and exit
```

## Projects using pyproject-appimage
* [jdNBTExplorer](https://codeberg.org/JakobDev/jdNBTExplorer)

[pyproject-appimage is of course also available as AppImage](https://codeberg.org/JakobDev/pyproject-appimage/releases/latest)

pyproject-appimage is based [on the work of niess](https://github.com/niess/python-appimage)
