Files
skipper/shared/paths.js
2026-04-05 15:28:04 +02:00

44 lines
1.3 KiB
JavaScript

const path = require('path');
const rootDir = path.resolve(__dirname, '..');
const dataDir = process.env.DATA_DIR
? path.resolve(process.env.DATA_DIR)
: path.join(rootDir, 'data');
const resourceTypeToDirName = {
tenant: 'tenants',
node: 'nodes',
service: 'services',
deployment: 'deployments',
resource_limits: 'resource-limits',
network: 'networks',
volume: 'volumes',
};
function getResourceDir(resourceType) {
const dirName = resourceTypeToDirName[resourceType];
if (!dirName) {
throw new Error(`Unknown resource type: ${resourceType}`);
}
return path.join(dataDir, 'resources', dirName);
}
module.exports = {
rootDir,
dataDir,
resourceTypeToDirName,
getResourceDir,
resourcesDir: path.join(dataDir, 'resources'),
workOrdersPendingDir: path.join(dataDir, 'work-orders', 'pending'),
workOrdersRunningDir: path.join(dataDir, 'work-orders', 'running'),
workOrdersFinishedDir: path.join(dataDir, 'work-orders', 'finished'),
eventsDir: path.join(dataDir, 'events'),
logsDir: path.join(dataDir, 'logs'),
snapshotsSystemDir: path.join(dataDir, 'snapshots', 'system'),
snapshotsTenantsDir: path.join(dataDir, 'snapshots', 'tenants'),
idempotencyDir: path.join(dataDir, 'idempotency'),
authNodesDir: path.join(dataDir, 'auth', 'nodes'),
};