fix: Android app icon after init and Windows in-app link navigation
This commit is contained in:
39
.github/scripts/generate-app-icons.mjs
vendored
39
.github/scripts/generate-app-icons.mjs
vendored
@@ -10,7 +10,17 @@ const templateDir = path.join(root, "template");
|
||||
|
||||
const ICON_PRIORITY = ["logo.png", "logo.jpg", "logo.jpeg", "favicon.ico"];
|
||||
|
||||
const BUNDLE_ICONS = [
|
||||
"icons/32x32.png",
|
||||
"icons/128x128.png",
|
||||
"icons/128x128@2x.png",
|
||||
"icons/icon.icns",
|
||||
"icons/icon.ico",
|
||||
];
|
||||
|
||||
function findIconSource(baseDir) {
|
||||
if (!fs.existsSync(baseDir)) return null;
|
||||
|
||||
for (const name of ICON_PRIORITY) {
|
||||
const direct = path.join(baseDir, name);
|
||||
if (fs.existsSync(direct)) return direct;
|
||||
@@ -27,16 +37,26 @@ function findIconSource(baseDir) {
|
||||
return null;
|
||||
}
|
||||
|
||||
export function generateAppIcons() {
|
||||
export function findIconSourceForJob(root, jobId, distDir) {
|
||||
const buildDir = jobId ? path.join(root, "builds", jobId) : null;
|
||||
if (buildDir && fs.existsSync(buildDir)) {
|
||||
const fromUpload = findIconSource(buildDir);
|
||||
if (fromUpload) return fromUpload;
|
||||
}
|
||||
return findIconSource(distDir);
|
||||
}
|
||||
|
||||
export function generateAppIcons(options = {}) {
|
||||
const { jobId } = options;
|
||||
if (!fs.existsSync(distDir)) {
|
||||
console.log("No dist directory, keeping default icons");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
const iconSource = findIconSource(distDir);
|
||||
const iconSource = findIconSourceForJob(root, jobId, distDir);
|
||||
if (!iconSource) {
|
||||
console.log("No logo.png or favicon.ico found, keeping default icons");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
console.log(`Generating app icons from: ${path.relative(root, iconSource)}`);
|
||||
@@ -44,4 +64,15 @@ export function generateAppIcons() {
|
||||
cwd: templateDir,
|
||||
stdio: "inherit",
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
export { BUNDLE_ICONS };
|
||||
|
||||
const isCli =
|
||||
process.argv[1] &&
|
||||
path.resolve(process.argv[1]) === fileURLToPath(import.meta.url);
|
||||
|
||||
if (isCli) {
|
||||
generateAppIcons({ jobId: process.env.JOB_ID });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user