1import { cliFlag } from '../../serverF/cliArgAI.mts'2import { getDeployActions } from './doPtDeployActionF.mts'3import { exitOnUnknownArgs } from '../k8sF/isActionSupportedF.mts'4import type { DoPtDeployActionParams } from './doPtDeployActionF.mts'5import { getAction } from '../ctxF/actionCtxF.mts'6import { availActionsCtx } from '../ctxF/availActionsCtxF.mts'7import { doSetProcessEnv } from '../libF/doSetEnvF.mts'8import { getAppCfg } from '../k8sF/ctxF/appCfgCtxF.mts'10export const doPtDeployAction = async ({isPostAction = false}: DoPtDeployActionParams = {}): Promise<boolean> => {13 const actionFnc = getDeployActions()[action]14 if (!actionFnc || typeof actionFnc !== 'function') return false15 if (!!actionFnc.isPostAction !== isPostAction) return false16 if (actionFnc.cliSchema) exitOnUnknownArgs(actionFnc)17 if ((actionFnc as any).needsEnvConf) {19 doSetProcessEnv({envLocal: envLocal ?? {}, envConf: envConf ?? {}})20 }21 await actionFnc()22 return true23}25export const tryDispatchAction = async (): Promise<boolean> => {28 const allActions = {...getDeployActions(), ...availActionsCtx.getStore()}29 const actionFnc = allActions[action]30 if (!actionFnc || typeof actionFnc !== 'function') return false31 if ((actionFnc as any).isPostAction) return false // post-actions run later via doPtDeployAction({isPostAction: true})32 if ((actionFnc as any).gensDf || (actionFnc as any).needsLazyDocker) return false // these need docker setup first33 if ((actionFnc as any).needsEnvConf) return false // needs doSetProcessEnv first34 if (actionFnc.cliSchema) exitOnUnknownArgs(actionFnc)35 await actionFnc()36 return true37}