diff --git a/.changeset/light-toys-shout.md b/.changeset/light-toys-shout.md new file mode 100644 index 00000000..9bf9d04c --- /dev/null +++ b/.changeset/light-toys-shout.md @@ -0,0 +1,5 @@ +--- +'pockethost': minor +--- + +Added `--extra-plugins` global switch to temporarily load extra plugins from CLI diff --git a/packages/pockethost/src/cli/commands/ServeCommand/index.ts b/packages/pockethost/src/cli/commands/ServeCommand/index.ts index 2af41243..ff5b0d8f 100644 --- a/packages/pockethost/src/cli/commands/ServeCommand/index.ts +++ b/packages/pockethost/src/cli/commands/ServeCommand/index.ts @@ -3,12 +3,17 @@ import { LoggerService, doServeAction, doServeSlugsFilter, + loadPlugins, } from '../../../common' -type Options = { - isolate: boolean +type GlobalOptions = { + extraPlugins: string[] } +type Options = { + only: string[] +} & GlobalOptions + export const ServeCommand = async () => { const serveSlugs = await doServeSlugsFilter([]) @@ -24,12 +29,15 @@ export const ServeCommand = async () => { .filter((s) => serveSlugs.includes(s)), serveSlugs, ) - .action(async (options: Options) => { + .action(async (unused: Options, cmd: Command) => { const logger = LoggerService().create(`ServeCommand`) const { dbg, error, info, warn } = logger info(`Starting`) - await doServeAction({ only: serveSlugs }) + const { only, extraPlugins } = cmd.optsWithGlobals() + await loadPlugins(extraPlugins) + dbg(`CLI:`, cmd.optsWithGlobals()) + await doServeAction({ only }) }) return cmd } diff --git a/packages/pockethost/src/cli/index.ts b/packages/pockethost/src/cli/index.ts index a9d08d5b..2672a154 100755 --- a/packages/pockethost/src/cli/index.ts +++ b/packages/pockethost/src/cli/index.ts @@ -35,6 +35,7 @@ export const main = async () => { .name('pockethost') .description('Multitenant PocketBase hosting') .version(version) + .option(`-e, --extra-plugins `, `Extra plugins to load`, []) const commands = await doCliCommandsFilter([ await ServeCommand(),