Skip to content

Commit ae76c60

Browse files
authored
fix(bundler): appimage paths and filename (#1227)
1 parent 99635c3 commit ae76c60

File tree

4 files changed

+19
-22
lines changed

4 files changed

+19
-22
lines changed

.changes/appimage-path.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"tauri-bundler": patch
3+
---
4+
5+
Append app version and OS architecture on AppImage output filename.

cli/tauri-bundler/src/bundle.rs

+1-8
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,7 @@ use std::path::PathBuf;
3232
/// Returns the list of paths where the bundles can be found.
3333
pub fn bundle_project(settings: Settings) -> crate::Result<Vec<PathBuf>> {
3434
let mut paths = Vec::new();
35-
let mut package_types = settings.package_types()?;
36-
// The AppImage bundle script requires that the Deb bundle be run first
37-
if package_types.contains(&PackageType::AppImage) {
38-
if let Some(deb_pos) = package_types.iter().position(|&p| p == PackageType::Deb) {
39-
package_types.remove(deb_pos);
40-
}
41-
package_types.insert(0, PackageType::Deb);
42-
}
35+
let package_types = settings.package_types()?;
4336
for package_type in &package_types {
4437
let mut bundle_paths = match package_type {
4538
PackageType::OsxBundle => {

cli/tauri-bundler/src/bundle/appimage_bundle.rs

+10-11
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,7 @@ pub fn bundle_project(settings: &Settings) -> crate::Result<Vec<PathBuf>> {
4040
"x86_64" => "amd64",
4141
other => other,
4242
};
43-
let package_base_name = format!(
44-
"{}_{}_{}",
45-
settings.main_binary_name(),
46-
settings.version_string(),
47-
arch
48-
);
49-
let base_dir = settings.project_out_directory().join("bundle/appimage_deb");
50-
let package_dir = base_dir.join(&package_base_name);
43+
let package_dir = settings.project_out_directory().join("bundle/appimage_deb");
5144

5245
// generate deb_folder structure
5346
deb_bundle::generate_data(settings, &package_dir)?;
@@ -58,16 +51,22 @@ pub fn bundle_project(settings: &Settings) -> crate::Result<Vec<PathBuf>> {
5851
}
5952
std::fs::create_dir_all(output_path.clone())?;
6053
let app_dir_path = output_path.join(format!("{}.AppDir", settings.main_binary_name()));
61-
let appimage_path = output_path.join(format!("{}.AppImage", settings.main_binary_name()));
54+
let appimage_filename = format!(
55+
"{}_{}_{}.AppImage",
56+
settings.main_binary_name(),
57+
settings.version_string(),
58+
arch
59+
);
60+
let appimage_path = output_path.join(&appimage_filename);
6261
path_utils::create(app_dir_path, true)?;
6362

6463
let upcase_app_name = settings.main_binary_name().to_uppercase();
6564

6665
// setup data to insert into shell script
6766
let mut sh_map = BTreeMap::new();
6867
sh_map.insert("app_name", settings.main_binary_name());
69-
sh_map.insert("bundle_name", package_base_name.as_str());
70-
sh_map.insert("app_name_uppercase", upcase_app_name.as_str());
68+
sh_map.insert("app_name_uppercase", &upcase_app_name);
69+
sh_map.insert("appimage_filename", &appimage_filename);
7170

7271
// initialize shell script template.
7372
let temp = HANDLEBARS.render("appimage", &sh_map)?;

cli/tauri-bundler/src/bundle/templates/appimage

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set -euxo pipefail
55
export ARCH=x86_64
66

77
mkdir -p {{app_name}}.AppDir
8-
cp -r ../deb/{{bundle_name}}/data/usr {{app_name}}.AppDir
8+
cp -r ../appimage_deb/data/usr {{app_name}}.AppDir
99

1010
cd {{app_name}}.AppDir
1111

@@ -34,9 +34,9 @@ mksquashfs {{app_name}}.AppDir {{app_name}}.squashfs -root-owned -noappend
3434
wget -q -4 -O appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage || wget -q -4 -O appimagetool https://github.com/AppImage/AppImageKit/releases/download/12/appimagetool-x86_64.AppImage
3535
chmod +x appimagetool
3636
if lsmod | grep -q fuse; then
37-
./appimagetool {{app_name}}.AppDir {{app_name}}.AppImage
37+
./appimagetool {{app_name}}.AppDir {{appimage_filename}}
3838
else
3939
./appimagetool --appimage-extract
40-
./squashfs-root/AppRun {{app_name}}.AppDir {{app_name}}.AppImage
40+
./squashfs-root/AppRun {{app_name}}.AppDir {{appimage_filename}}
4141
rm -rf ./squashfs-root
4242
fi

0 commit comments

Comments
 (0)