- Switched to pnpm - Updated to typescript 4.9.5 - JSX transforms switched to react-jsx - Use swc for typescript transforms - Remove deprecated dependencies - Cleanup unused types - Some ESM fixes - PostCSS config now lives in package.json - Bump support target TODO: - switch to vite or plain esbuild - jest to vitest / uvu - jquery to cash-dom - pure ESM (lodash-es, etc.) - drop prettier & husky (lint-staged is okay) - drop wasm cli & xterm.js - update bootstrap
32 lines
775 B
TypeScript
32 lines
775 B
TypeScript
import type { Stdio } from 'blessing-skin-shell'
|
|
import cac from 'cac'
|
|
import { install, remove } from './pluginManager'
|
|
|
|
type Options = {
|
|
sync?: string
|
|
remove?: string
|
|
}
|
|
|
|
export default async function pacman(stdio: Stdio, args: string[]) {
|
|
if (args.length === 0) {
|
|
stdio.println('error: no operation specified (use -h for help)')
|
|
return
|
|
}
|
|
|
|
const program = cac('pacman')
|
|
program.help()
|
|
|
|
program.option('-S, --sync <plugin>', 'install or upgrade a plugin')
|
|
program.option('-R, --remove <plugin>', 'remove a plugin')
|
|
|
|
const { options } = program.parse(['', ''].concat(args), { run: false })
|
|
|
|
const opts: Options = options
|
|
|
|
if (opts.sync) {
|
|
await install(opts.sync, stdio)
|
|
} else if (opts.remove) {
|
|
await remove(opts.remove, stdio)
|
|
}
|
|
}
|