fix locking issue

This commit is contained in:
cupcakearmy 2020-12-09 00:07:03 +01:00
parent fde4edc05f
commit 1f6c13a595
No known key found for this signature in database
GPG Key ID: D28129AE5654D9D9
3 changed files with 16 additions and 11 deletions

View File

@ -1,6 +1,6 @@
{
"private": true,
"version": "0.26",
"version": "0.27",
"scripts": {
"build": "tsc",
"dev": "tsc -w",

View File

@ -2,7 +2,7 @@ import colors from 'colors'
import { program } from 'commander'
import { setCIMode } from 'clitastic'
import { unlock, readLock, writeLock } from './lock'
import { unlock, readLock, writeLock, lock } from './lock'
import { Config } from './types'
import { init } from './config'
import { version } from '../package.json'
@ -118,21 +118,19 @@ async function main() {
try {
if (requireConfig) {
config = init(configFile)
const lock = readLock()
if (lock.running) throw new Error('An instance of autorestic is already running for this config file'.red)
writeLock({
...lock,
running: true,
})
const { running } = readLock()
if (running) {
console.log('An instance of autorestic is already running for this config file'.red)
process.exit(1)
}
lock()
}
await queue()
if (error) process.exit(1)
} catch (e) {
console.error(e.message)
} finally {
if (requireConfig) unlock()
}
if (error) process.exit(1)
}
main()

View File

@ -30,3 +30,10 @@ export const unlock = () => {
running: false,
})
}
export const lock = () => {
writeLock({
...readLock(),
running: true,
})
}