mirror of
https://github.com/unraid/api.git
synced 2026-01-01 06:01:18 -06:00
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added detailed versioning for plugin packages incorporating architecture and build identifiers. - Simplified and improved install/uninstall scripts with backup and dynamic package detection. - Introduced comprehensive setup, verification, patching, and cleanup scripts for the Unraid API environment. - Enhanced service control with explicit start, stop, restart, and status commands. - Added robust dependency management scripts for restoring and archiving Node.js modules. - Implemented vendor archive metadata storage and dynamic handling during build and runtime. - Added new CLI options and environment schemas for consistent build configuration. - Introduced new shutdown scripts to gracefully stop flash-backup and unraid-api services. - Added utility scripts for API version detection and vendor archive configuration. - Added a new package description file detailing Unraid API features and homepage link. - **Bug Fixes** - Improved validation and error reporting for missing manifests, dependencies, and configuration files. - Enhanced fallback logic for locating and creating vendor archives. - Fixed iframe compatibility in UI by updating HTML and Firefox preference files. - **Chores** - Updated .gitignore with generated file patterns for Node.js binaries and archives. - Removed obsolete internal documentation and legacy cleanup scripts. - Refined Docker Compose and CI workflows to pass precise API versioning and manage build artifacts. - Centralized common environment validation and CLI option definitions across build tools. - Cleaned up plugin manifest by removing Node.js and PNPM-related entities and legacy logic. - Improved logging and error handling in build and installation scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
import { join } from "path";
|
|
import {
|
|
getTxzName,
|
|
pluginName,
|
|
pluginNameWithExt,
|
|
startingDir,
|
|
} from "./consts";
|
|
|
|
export interface PathConfig {
|
|
startingDir: string;
|
|
}
|
|
|
|
export interface TxzPathConfig extends PathConfig {
|
|
pluginVersion?: string;
|
|
}
|
|
|
|
export const deployDir = "deploy" as const;
|
|
|
|
export const apiDir = join(
|
|
startingDir,
|
|
"source",
|
|
pluginName,
|
|
"usr",
|
|
"local",
|
|
"unraid-api"
|
|
);
|
|
|
|
export const vendorStorePath = "/boot/config/plugins/dynamix.my.servers";
|
|
|
|
/**
|
|
* Get the path to the root plugin directory
|
|
* @param startingDir - The starting directory
|
|
* @returns The path to the root plugin directory
|
|
*/
|
|
export function getRootPluginPath({ startingDir }: PathConfig): string {
|
|
return join(startingDir, "/plugins/", pluginNameWithExt);
|
|
}
|
|
|
|
/**
|
|
* Get the path to the deploy plugin directory
|
|
* @param startingDir - The starting directory
|
|
* @returns The path to the deploy plugin directory
|
|
*/
|
|
export function getDeployPluginPath({ startingDir }: PathConfig): string {
|
|
return join(startingDir, deployDir, pluginNameWithExt);
|
|
}
|
|
|
|
/**
|
|
* Get the path to the TXZ file
|
|
* @param startingDir - The starting directory
|
|
* @param pluginVersion - The plugin version
|
|
* @returns The path to the TXZ file
|
|
*/
|
|
export function getTxzPath({
|
|
startingDir,
|
|
pluginVersion,
|
|
}: TxzPathConfig): string {
|
|
return join(startingDir, deployDir, getTxzName(pluginVersion));
|
|
}
|