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