diff --git a/desktop/build.js b/desktop/build.js
index bc63c77db..dca142162 100644
--- a/desktop/build.js
+++ b/desktop/build.js
@@ -14,113 +14,113 @@
// You should have received a copy of the GNU Affero General Public Licensee
// along with this program. If not, see .
-const fs = require('fs');
-const path = require('path');
-const https = require('https');
-const { execSync } = require('child_process');
-const unzipper = require('unzipper');
+const fs = require('fs')
+const path = require('path')
+const https = require('https')
+const {execSync} = require('child_process')
+const unzipper = require('unzipper')
// Helper function to download a file
async function downloadFile(url, dest) {
return new Promise((resolve, reject) => {
- const file = fs.createWriteStream(dest);
+ const file = fs.createWriteStream(dest)
https.get(url, (response) => {
if (response.statusCode !== 200) {
- return reject(new Error(`Failed to download file: ${response.statusCode}`));
+ return reject(new Error(`Failed to download file: ${response.statusCode}`))
}
- response.pipe(file);
+ response.pipe(file)
file.on('finish', () => {
- file.close(resolve);
- });
+ file.close(resolve)
+ })
}).on('error', (err) => {
- fs.unlink(dest, () => reject(err));
- });
- });
+ fs.unlink(dest, () => reject(err))
+ })
+ })
}
// Helper function to unzip a file to a directory
async function unzipFile(zipPath, destDir) {
return fs.createReadStream(zipPath)
- .pipe(unzipper.Extract({ path: destDir }))
- .promise();
+ .pipe(unzipper.Extract({path: destDir}))
+ .promise()
}
// Helper function to replace text in a file
async function replaceTextInFile(filePath, searchValue, replaceValue) {
- const data = await fs.promises.readFile(filePath, 'utf8');
- const result = data.replace(searchValue, replaceValue);
- await fs.promises.writeFile(filePath, result, 'utf8');
+ const data = await fs.promises.readFile(filePath, 'utf8')
+ const result = data.replace(searchValue, replaceValue)
+ await fs.promises.writeFile(filePath, result, 'utf8')
}
async function renameDistFilesToUnstable(currentVersion) {
- const directory = 'dist';
- const files = await fs.promises.readdir(directory);
+ const directory = 'dist'
+ const files = await fs.promises.readdir(directory)
for (const file of files) {
if (file.includes(currentVersion)) {
- const newName = file.replace(currentVersion, 'unstable');
+ const newName = file.replace(currentVersion, 'unstable')
await fs.promises.rename(
path.join(directory, file),
- path.join(directory, newName)
- );
- console.log(`Renamed: ${file} -> ${newName}`);
+ path.join(directory, newName),
+ )
+ console.log(`Renamed: ${file} -> ${newName}`)
}
}
}
// Main function to execute the script steps
async function main() {
- const args = process.argv.slice(2);
+ const args = process.argv.slice(2)
if (args.length === 0) {
- console.error("Error: Version placeholder argument is required.");
- console.error("Usage: node build-script.js [rename-version]");
- process.exit(1);
+ console.error('Error: Version placeholder argument is required.')
+ console.error('Usage: node build-script.js [rename-version]')
+ process.exit(1)
}
- const versionPlaceholder = args[0];
- const renameDistFiles = args[1] || false;
- const frontendZipUrl = "https://dl.vikunja.io/frontend/vikunja-frontend-unstable.zip";
- const zipFilePath = path.resolve(__dirname, 'vikunja-frontend-unstable.zip');
- const frontendDir = path.resolve(__dirname, 'frontend');
- const indexFilePath = path.join(frontendDir, 'index.html');
- const packageJsonPath = path.join(__dirname, 'package.json');
-
- console.log(`Building version ${versionPlaceholder}`);
+ const versionPlaceholder = args[0]
+ const renameDistFiles = args[1] || false
+ const frontendZipUrl = 'https://dl.vikunja.io/frontend/vikunja-frontend-unstable.zip'
+ const zipFilePath = path.resolve(__dirname, 'vikunja-frontend-unstable.zip')
+ const frontendDir = path.resolve(__dirname, 'frontend')
+ const indexFilePath = path.join(frontendDir, 'index.html')
+ const packageJsonPath = path.join(__dirname, 'package.json')
+
+ console.log(`Building version ${versionPlaceholder}`)
try {
- console.log('Step 1: Downloading frontend zip...');
- await downloadFile(frontendZipUrl, zipFilePath);
+ console.log('Step 1: Downloading frontend zip...')
+ await downloadFile(frontendZipUrl, zipFilePath)
- console.log('Step 2: Unzipping frontend package...');
- await unzipFile(zipFilePath, frontendDir);
+ console.log('Step 2: Unzipping frontend package...')
+ await unzipFile(zipFilePath, frontendDir)
- console.log('Step 3: Modifying index.html...');
- await replaceTextInFile(indexFilePath, /\/api\/v1/g, '');
+ console.log('Step 3: Modifying index.html...')
+ await replaceTextInFile(indexFilePath, /\/api\/v1/g, '')
- console.log('Step 4: Updating version in package.json...');
- await replaceTextInFile(packageJsonPath, /\${version}/g, versionPlaceholder);
+ console.log('Step 4: Updating version in package.json...')
+ await replaceTextInFile(packageJsonPath, /\${version}/g, versionPlaceholder)
await replaceTextInFile(
packageJsonPath,
/"version": ".*"/,
- `"version": "${versionPlaceholder}"`
- );
+ `"version": "${versionPlaceholder}"`,
+ )
- console.log('Step 5: Installing dependencies and building...');
- execSync('pnpm dist', { stdio: 'inherit' });
+ console.log('Step 5: Installing dependencies and building...')
+ execSync('pnpm dist', {stdio: 'inherit'})
if (renameDistFiles) {
- console.log('Step 6: Renaming release files...');
- await renameDistFilesToUnstable(versionPlaceholder);
+ console.log('Step 6: Renaming release files...')
+ await renameDistFilesToUnstable(versionPlaceholder)
}
- console.log('All steps completed successfully!');
+ console.log('All steps completed successfully!')
} catch (err) {
- console.error('An error occurred:', err.message);
+ console.error('An error occurred:', err.message)
} finally {
// Cleanup the zip file
if (fs.existsSync(zipFilePath)) {
- fs.unlinkSync(zipFilePath);
+ fs.unlinkSync(zipFilePath)
}
}
}
-main();
+main()