forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
1import fs from "fs";
2import path from "path";
3import os from "os";
4import { logger } from "logger";
5
6export function cleanUpSyncLockOnExit(did: string) {
7 process.on("exit", async () => {
8 try {
9 await fs.promises.unlink(path.join(os.tmpdir(), `rocksky-${did}.lock`));
10 process.exit(0);
11 } catch (error) {
12 logger.error`Error cleaning up Sync lock: ${error}`;
13 process.exit(1);
14 }
15 });
16
17 process.on("SIGINT", async () => {
18 try {
19 await fs.promises.unlink(path.join(os.tmpdir(), `rocksky-${did}.lock`));
20 process.exit(0);
21 } catch (error) {
22 logger.error`Error cleaning up Sync lock: ${error}`;
23 process.exit(1);
24 }
25 });
26
27 process.on("SIGTERM", async () => {
28 try {
29 await fs.promises.unlink(path.join(os.tmpdir(), `rocksky-${did}.lock`));
30 process.exit(0);
31 } catch (error) {
32 logger.error`Error cleaning up Sync lock: ${error}`;
33 process.exit(1);
34 }
35 });
36
37 process.on("uncaughtException", async () => {
38 try {
39 await fs.promises.unlink(path.join(os.tmpdir(), `rocksky-${did}.lock`));
40 process.exit(1);
41 } catch (error) {
42 logger.error`Error cleaning up Sync lock: ${error}`;
43 process.exit(1);
44 }
45 });
46
47 process.on("unhandledRejection", async () => {
48 try {
49 await fs.promises.unlink(path.join(os.tmpdir(), `rocksky-${did}.lock`));
50 process.exit(1);
51 } catch (error) {
52 logger.error`Error cleaning up Sync lock: ${error}`;
53 process.exit(1);
54 }
55 });
56}