mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-16 11:17:49 -06:00
Provision desktop file with Jinja to put in version number
This way the Desktop file for the AppImage knows the version number, and the appimage itself knows it too. Contributes to issue CURA-9409.
This commit is contained in:
parent
c2f3161fb6
commit
047d7b1b19
2 changed files with 28 additions and 3 deletions
|
@ -2,6 +2,7 @@
|
|||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import argparse # Command line arguments parsing and help.
|
||||
from jinja2 import Template
|
||||
import os # Finding installation directory.
|
||||
import os.path # Finding files.
|
||||
import shutil # Copying files.
|
||||
|
@ -12,7 +13,7 @@ def build_appimage(dist_path, version):
|
|||
"""
|
||||
Creates an AppImage file from the build artefacts created so far.
|
||||
"""
|
||||
copy_metadata_files(dist_path)
|
||||
copy_metadata_files(dist_path, version)
|
||||
|
||||
appimage_filename = f"Ultimaker-Cura_{version}.AppImage"
|
||||
try:
|
||||
|
@ -24,13 +25,12 @@ def build_appimage(dist_path, version):
|
|||
|
||||
sign_appimage(dist_path, appimage_filename)
|
||||
|
||||
def copy_metadata_files(dist_path):
|
||||
def copy_metadata_files(dist_path, version):
|
||||
"""
|
||||
Copy metadata files for the metadata of the AppImage.
|
||||
"""
|
||||
copied_files = {
|
||||
"cura-icon_256x256.png": "cura-icon.png",
|
||||
"cura.desktop": "cura.desktop",
|
||||
"cura.appdata.xml": "cura.appdata.xml",
|
||||
"AppRun": "AppRun"
|
||||
}
|
||||
|
@ -41,8 +41,18 @@ def copy_metadata_files(dist_path):
|
|||
shutil.copyfile(os.path.join(packaging_dir, source), os.path.join(dist_path, dest))
|
||||
|
||||
# Ensure that AppRun has the proper permissions: 755 (user reads, writes and executes, group reads and executes, world reads and executes).
|
||||
print("Changing permissions for AppRun")
|
||||
os.chmod(os.path.join(dist_path, "AppRun"), stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
|
||||
|
||||
# Provision the Desktop file with the correct version number.
|
||||
template_path = os.path.join(packaging_dir, "cura.desktop.jinja")
|
||||
desktop_path = os.path.join(dist_path, "cura.desktop")
|
||||
print("Provisioning desktop file from", template_path, "to", desktop_path)
|
||||
with open(template_path, "r") as f:
|
||||
desktop_file = Template(f.read())
|
||||
with open(desktop_path, "w") as f:
|
||||
f.write(desktop_file.render(cura_version = version))
|
||||
|
||||
def generate_appimage(dist_path, appimage_filename):
|
||||
appimage_path = os.path.join(dist_path, appimage_filename)
|
||||
command = ["appimagetool", "--appimage-extract-and-run", f"{dist_path}/", appimage_path]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue