A decentralized music tracking and discovery platform built on AT Protocol 馃幍 rocksky.app
spotify atproto lastfm musicbrainz scrobbling listenbrainz
at main 56 lines 1.5 kB view raw
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}