Add upgrade mode support

This commit is contained in:
Ben Allfree 2023-12-30 15:49:50 +00:00
parent cd49c81fd4
commit da8831a9f7
2 changed files with 18 additions and 7 deletions

View File

@ -30,6 +30,8 @@ export const _IS_DEV = process.env.NODE_ENV === 'development'
console.log({ _PH_HOME, _PH_PROJECT_ROOT, _PH_BUILD_ROOT }) console.log({ _PH_HOME, _PH_PROJECT_ROOT, _PH_BUILD_ROOT })
export const SETTINGS = { export const SETTINGS = {
UPGRADE_MODE: mkBoolean(false),
PH_HOME: mkPath(_PH_HOME), PH_HOME: mkPath(_PH_HOME),
PH_PROJECT_ROOT: mkPath(_PH_PROJECT_ROOT), PH_PROJECT_ROOT: mkPath(_PH_PROJECT_ROOT),
PH_BUILD_ROOT: mkPath(_PH_BUILD_ROOT, { required: false }), PH_BUILD_ROOT: mkPath(_PH_BUILD_ROOT, { required: false }),
@ -158,6 +160,8 @@ export const instanceLogger = () => ioc.service('instanceLogger')
/** /**
* Accessors * Accessors
*/ */
export const UPGRADE_MODE = () => settings().UPGRADE_MODE
export const PH_HOME = () => settings().PH_HOME export const PH_HOME = () => settings().PH_HOME
export const PH_PROJECT_ROOT = () => settings().PH_PROJECT_ROOT export const PH_PROJECT_ROOT = () => settings().PH_PROJECT_ROOT
export const PH_BUILD_ROOT = () => settings().PH_BUILD_ROOT export const PH_BUILD_ROOT = () => settings().PH_BUILD_ROOT

View File

@ -4,6 +4,7 @@ import {
INSTANCE_APP_HOOK_DIR, INSTANCE_APP_HOOK_DIR,
INSTANCE_APP_MIGRATIONS_DIR, INSTANCE_APP_MIGRATIONS_DIR,
INSTANCE_DATA_DB, INSTANCE_DATA_DB,
UPGRADE_MODE,
mkAppUrl, mkAppUrl,
mkContainerHomePath, mkContainerHomePath,
mkDocUrl, mkDocUrl,
@ -305,6 +306,11 @@ export const instanceService = mkSingleton(
return cp return cp
} catch (e) { } catch (e) {
warn(`Error spawning: ${e}`) warn(`Error spawning: ${e}`)
if (UPGRADE_MODE()) {
throw new Error(
`PocketHost is rebooting. Try again in a few seconds.`,
)
} else {
await updateInstance(instance.id, { await updateInstance(instance.id, {
maintenance: true, maintenance: true,
}) })
@ -313,6 +319,7 @@ export const instanceService = mkSingleton(
) )
throw new Error(`Maintenance mode`) throw new Error(`Maintenance mode`)
} }
}
})() })()
const { pid: _pid, exitCode } = childProcess const { pid: _pid, exitCode } = childProcess
const pid = _pid() const pid = _pid()