@rocksky/cli
Version:
Command-line interface for Rocksky – scrobble tracks, view stats, and manage your listening history
57 lines (51 loc) • 1.51 kB
text/typescript
import fs from "fs";
import path from "path";
import os from "os";
import { logger } from "logger";
export function cleanUpSyncLockOnExit(did: string) {
process.on("exit", async () => {
try {
await fs.promises.unlink(path.join(os.tmpdir(), `rocksky-${did}.lock`));
process.exit(0);
} catch (error) {
logger.error`Error cleaning up Sync lock: ${error}`;
process.exit(1);
}
});
process.on("SIGINT", async () => {
try {
await fs.promises.unlink(path.join(os.tmpdir(), `rocksky-${did}.lock`));
process.exit(0);
} catch (error) {
logger.error`Error cleaning up Sync lock: ${error}`;
process.exit(1);
}
});
process.on("SIGTERM", async () => {
try {
await fs.promises.unlink(path.join(os.tmpdir(), `rocksky-${did}.lock`));
process.exit(0);
} catch (error) {
logger.error`Error cleaning up Sync lock: ${error}`;
process.exit(1);
}
});
process.on("uncaughtException", async () => {
try {
await fs.promises.unlink(path.join(os.tmpdir(), `rocksky-${did}.lock`));
process.exit(1);
} catch (error) {
logger.error`Error cleaning up Sync lock: ${error}`;
process.exit(1);
}
});
process.on("unhandledRejection", async () => {
try {
await fs.promises.unlink(path.join(os.tmpdir(), `rocksky-${did}.lock`));
process.exit(1);
} catch (error) {
logger.error`Error cleaning up Sync lock: ${error}`;
process.exit(1);
}
});
}