37 lines
831 B
JavaScript
37 lines
831 B
JavaScript
const plist = require('plist');
|
|
|
|
function generateManifest({ baseUrl, build, app }) {
|
|
const manifest = {
|
|
items: [{
|
|
assets: [
|
|
{
|
|
kind: 'software-package',
|
|
url: `${baseUrl}/api/download/${build.id}`,
|
|
},
|
|
],
|
|
metadata: {
|
|
'bundle-identifier': app.bundle_id,
|
|
'bundle-version': build.version,
|
|
kind: 'software',
|
|
title: app.name,
|
|
},
|
|
}],
|
|
};
|
|
|
|
// Add icon asset if available
|
|
if (build.icon_filename) {
|
|
manifest.items[0].assets.push({
|
|
kind: 'display-image',
|
|
url: `${baseUrl}/icons/${build.icon_filename}`,
|
|
});
|
|
manifest.items[0].assets.push({
|
|
kind: 'full-size-image',
|
|
url: `${baseUrl}/icons/${build.icon_filename}`,
|
|
});
|
|
}
|
|
|
|
return plist.build(manifest);
|
|
}
|
|
|
|
module.exports = { generateManifest };
|