63 lines
1.9 KiB
JavaScript
63 lines
1.9 KiB
JavaScript
import { promises as fs } from 'fs';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import { dirname } from 'path';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
|
|
const RELEASE_DIR = 'release';
|
|
const FILES_TO_INCLUDE = [
|
|
'main.js',
|
|
'manifest.json',
|
|
'styles.css'
|
|
];
|
|
|
|
async function packageRelease() {
|
|
try {
|
|
console.log('📦 Packaging release files...\n');
|
|
|
|
// Create release directory if it doesn't exist
|
|
try {
|
|
await fs.access(RELEASE_DIR);
|
|
console.log(`✓ Release directory exists: ${RELEASE_DIR}`);
|
|
} catch {
|
|
await fs.mkdir(RELEASE_DIR);
|
|
console.log(`✓ Created release directory: ${RELEASE_DIR}`);
|
|
}
|
|
|
|
// Copy each file
|
|
for (const file of FILES_TO_INCLUDE) {
|
|
const sourcePath = path.join(__dirname, file);
|
|
const destPath = path.join(__dirname, RELEASE_DIR, file);
|
|
|
|
try {
|
|
await fs.copyFile(sourcePath, destPath);
|
|
console.log(`✓ Copied ${file}`);
|
|
} catch (error) {
|
|
console.error(`✗ Failed to copy ${file}:`, error.message);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
// Read manifest to get version
|
|
const manifestPath = path.join(__dirname, 'manifest.json');
|
|
const manifestContent = await fs.readFile(manifestPath, 'utf8');
|
|
const manifest = JSON.parse(manifestContent);
|
|
|
|
console.log(`\n✅ Release package created successfully!`);
|
|
console.log(`📁 Location: ./${RELEASE_DIR}/`);
|
|
console.log(`📌 Version: ${manifest.version}`);
|
|
console.log(`\nFiles included:`);
|
|
FILES_TO_INCLUDE.forEach(file => console.log(` - ${file}`));
|
|
console.log(`\n💡 Tip: You can now upload these files from the '${RELEASE_DIR}' directory to your Gitea release.`);
|
|
console.log(`💡 Tip: To create a zip, run: cd ${RELEASE_DIR} && zip -r ../focus-task-${manifest.version}.zip *`);
|
|
|
|
} catch (error) {
|
|
console.error('❌ Error packaging release:', error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
packageRelease();
|