Add icon to modulo stub app
This commit is contained in:
parent
8f8d5f2f1c
commit
d43f7ae205
BIN
src/res/mac/AppIcon.icns
Normal file
BIN
src/res/mac/AppIcon.icns
Normal file
Binary file not shown.
|
@ -7,7 +7,9 @@
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>{{{modulo_path}}}</string>
|
<string>{{{modulo_path}}}</string>
|
||||||
<key>CFBundleIconFile</key>
|
<key>CFBundleIconFile</key>
|
||||||
<string></string>
|
<string>AppIcon</string>
|
||||||
|
<key>CFBundleIconName</key>
|
||||||
|
<string>AppIcon</string>>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>com.federicoterzi.modulo</string>
|
<string>com.federicoterzi.modulo</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
|
|
@ -4,6 +4,7 @@ use std::os::unix::fs::symlink;
|
||||||
|
|
||||||
const MODULO_APP_BUNDLE_NAME: &str = "Modulo.app";
|
const MODULO_APP_BUNDLE_NAME: &str = "Modulo.app";
|
||||||
const MODULO_APP_BUNDLE_PLIST_CONTENT: &'static str = include_str!("../../res/mac/modulo.plist");
|
const MODULO_APP_BUNDLE_PLIST_CONTENT: &'static str = include_str!("../../res/mac/modulo.plist");
|
||||||
|
const MODULO_APP_BUNDLE_ICON: &'static str = include_str!("../../res/mac/AppIcon.icns");
|
||||||
|
|
||||||
pub fn generate_modulo_app_bundle(modulo_path: &str) -> Result<PathBuf, std::io::Error> {
|
pub fn generate_modulo_app_bundle(modulo_path: &str) -> Result<PathBuf, std::io::Error> {
|
||||||
let modulo_pathbuf = PathBuf::from(modulo_path);
|
let modulo_pathbuf = PathBuf::from(modulo_path);
|
||||||
|
@ -38,11 +39,18 @@ pub fn generate_modulo_app_bundle(modulo_path: &str) -> Result<PathBuf, std::io:
|
||||||
let macos_dir = contents_dir.join("MacOS");
|
let macos_dir = contents_dir.join("MacOS");
|
||||||
std::fs::create_dir(&macos_dir)?;
|
std::fs::create_dir(&macos_dir)?;
|
||||||
|
|
||||||
|
let resources_dir = contents_dir.join("Resources");
|
||||||
|
std::fs::create_dir(&resources_dir)?;
|
||||||
|
|
||||||
// Generate the Plist file
|
// Generate the Plist file
|
||||||
let plist_content = MODULO_APP_BUNDLE_PLIST_CONTENT.replace("{{{modulo_path}}}", &modulo_path);
|
let plist_content = MODULO_APP_BUNDLE_PLIST_CONTENT.replace("{{{modulo_path}}}", &modulo_path);
|
||||||
let plist_file = contents_dir.join("Info.plist");
|
let plist_file = contents_dir.join("Info.plist");
|
||||||
std::fs::write(plist_file, plist_content)?;
|
std::fs::write(plist_file, plist_content)?;
|
||||||
|
|
||||||
|
// Copy the icon file
|
||||||
|
let icon_file = resources_dir.join("AppIcon.icns");
|
||||||
|
std::fs::write(icon_file, MODULO_APP_BUNDLE_ICON)?;
|
||||||
|
|
||||||
// Generate the symbolic link to the modulo binary
|
// Generate the symbolic link to the modulo binary
|
||||||
let target_link = macos_dir.join("modulo");
|
let target_link = macos_dir.join("modulo");
|
||||||
symlink(modulo_path, &target_link)?;
|
symlink(modulo_path, &target_link)?;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user