mirror of
https://github.com/unraid/api.git
synced 2026-01-09 10:10:45 -06:00
- also add better watcher support <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added a helper that displays a local installation URL to simplify setting up the plugin. - **Chores** - Updated service and container port configurations to ensure consistent network connectivity (changed from 8080 to 5858). - Refined container management to gracefully handle running instances during startup. - Improved build and installation routines for streamlined deployment and enhanced reliability. - Enhanced documentation to clarify installation and usage instructions for better user experience. - Introduced a new document outlining development workflows for better guidance. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1209561202532053
59 lines
1.9 KiB
TypeScript
Executable File
59 lines
1.9 KiB
TypeScript
Executable File
#!/usr/bin/env zx
|
|
import { mkdir, readFile, rm, writeFile } from 'fs/promises';
|
|
import { exit } from 'process';
|
|
|
|
import { $, cd } from 'zx';
|
|
|
|
import { getDeploymentVersion } from './get-deployment-version.js';
|
|
|
|
try {
|
|
// Create release and pack directories
|
|
await mkdir('./deploy/release', { recursive: true });
|
|
await mkdir('./deploy/pack', { recursive: true });
|
|
|
|
// Build Generated Types
|
|
await $`pnpm run codegen`;
|
|
|
|
await $`pnpm run build`;
|
|
// Copy app files to plugin directory
|
|
|
|
// Get package details
|
|
const packageJson = await readFile('./package.json', 'utf-8');
|
|
const parsedPackageJson = JSON.parse(packageJson);
|
|
|
|
const deploymentVersion = await getDeploymentVersion(process.env, parsedPackageJson.version);
|
|
|
|
// Update the package.json version to the deployment version
|
|
parsedPackageJson.version = deploymentVersion;
|
|
|
|
// Create a temporary directory for packaging
|
|
await mkdir('./deploy/pack/', { recursive: true });
|
|
|
|
await writeFile('./deploy/pack/package.json', JSON.stringify(parsedPackageJson, null, 4));
|
|
// Copy necessary files to the pack directory
|
|
await $`cp -r dist README.md .env.* ecosystem.config.json ./deploy/pack/`;
|
|
|
|
// Change to the pack directory and install dependencies
|
|
cd('./deploy/pack');
|
|
|
|
console.log('Installing production dependencies...');
|
|
$.verbose = true;
|
|
await $`pnpm install --prod --ignore-workspace --node-linker hoisted`;
|
|
|
|
// chmod the cli
|
|
await $`chmod +x ./dist/cli.js`;
|
|
await $`chmod +x ./dist/main.js`;
|
|
} catch (error) {
|
|
// Error with a command
|
|
if (Object.keys(error).includes('stderr')) {
|
|
console.log(`Failed building package. Exit code: ${error.exitCode}`);
|
|
console.log(`Error: ${error.stderr}`);
|
|
} else {
|
|
// Normal js error
|
|
console.log('Failed building package.');
|
|
console.log(`Error: ${error.message}`);
|
|
}
|
|
|
|
exit(error.exitCode);
|
|
}
|