@dappnode/dappnodesdk
Version:
dappnodesdk is a tool to make the creation of new dappnode packages as simple as possible. It helps to initialize and publish in ethereum blockchain
29 lines • 1.47 kB
JavaScript
import { getGitHeadIfAvailable } from "../../utils/git.js";
import { getPinMetadata } from "../../pinStrategy/index.js";
import { composeDeleteBuildProperties } from "../../files/index.js";
export function getUploadTasks({ packagesToBuildProps, skipUpload, releaseUploader, requireGitData, composeFileName }) {
const uploadTasks = [];
for (const { manifest, releaseDir } of packagesToBuildProps) {
const { name: dnpName } = manifest;
uploadTasks.push({
title: `Upload release for ${dnpName} to ${releaseUploader.networkName}`,
skip: () => skipUpload,
task: async (ctx, task) => {
const gitHead = await getGitHeadIfAvailable({ requireGitData });
// Remove `build` property AFTER building. Otherwise it may break ISO installations
// https://github.com/dappnode/DAppNode_Installer/issues/161
composeDeleteBuildProperties({ dir: releaseDir, composeFileName });
ctx[dnpName].releaseMultiHash = await releaseUploader.addFromFs({
dirPath: releaseDir,
metadata: getPinMetadata(manifest, gitHead),
onProgress: percent => (task.output = percentToMessage(percent))
});
}
});
}
return uploadTasks;
}
function percentToMessage(percent) {
return `Uploading... ${(percent * 100).toFixed(2)}%`;
}
//# sourceMappingURL=getUploadTasks.js.map