diff --git a/packages/apps/terminal/CHANGELOG.md b/packages/apps/terminal/CHANGELOG.md index 861ce99..4bae74f 100644 --- a/packages/apps/terminal/CHANGELOG.md +++ b/packages/apps/terminal/CHANGELOG.md @@ -1,5 +1,11 @@ # @prozilla-os/terminal +## 1.1.1 + +### Patch Changes + +- Added eval command + ## 1.1.0 ### Minor Changes diff --git a/packages/apps/terminal/package.json b/packages/apps/terminal/package.json index aaa6d71..a325d0a 100644 --- a/packages/apps/terminal/package.json +++ b/packages/apps/terminal/package.json @@ -1,7 +1,7 @@ { "name": "@prozilla-os/terminal", "description": "A terminal/shell application for ProzillaOS.", - "version": "1.1.0", + "version": "1.1.1", "homepage": "https://os.prozilla.dev/terminal", "author": { "name": "Prozilla", diff --git a/packages/apps/terminal/src/components/Terminal.tsx b/packages/apps/terminal/src/components/Terminal.tsx index a29d9e7..97a6e74 100644 --- a/packages/apps/terminal/src/components/Terminal.tsx +++ b/packages/apps/terminal/src/components/Terminal.tsx @@ -142,7 +142,7 @@ export function Terminal({ app, path: startPath, input, setTitle, close: exit, a if (value === "") return; // Parse arguments - const args = value.match(/(?:[^\s"]+|"[^"]*")+/g); + let args: string[] | null = value.match(/(?:[^\s"]+|"[^"]*")+/g); if (args == null) return; if (args[0].toLowerCase() === "sudo" && args.length >= 2) args.shift(); @@ -153,6 +153,13 @@ export function Terminal({ app, path: startPath, input, setTitle, close: exit, a if (!command) return formatError(commandName, "Command not found"); + args = args.map((arg) => { + if (arg.startsWith("\"") && arg.endsWith("\"")) + return arg.slice(1, -1); + + return arg; + }); + // Get options const options: string[] = []; const inputs: Record = {}; diff --git a/packages/apps/terminal/src/core/commands/eval.ts b/packages/apps/terminal/src/core/commands/eval.ts new file mode 100644 index 0000000..bad1ecd --- /dev/null +++ b/packages/apps/terminal/src/core/commands/eval.ts @@ -0,0 +1,18 @@ +import { Command, CommandResponse } from "../command"; + +const evalCommand = new Command() + .setRequireArgs(true) + .setManual({ + purpose: "Evaluate and execute JavaScript code", + usage: "eval [input]", + }) + .setRequireArgs(true) + .setExecute(function(this: Command, args) { + if (args == null || args.length == 0) + return; + + const output = eval(args[0]) as CommandResponse ?? { blank: true }; + return output; + }); + +export { evalCommand as eval }; \ No newline at end of file diff --git a/packages/demo/vite.config.ts b/packages/demo/vite.config.ts index e6a5c84..7c7fd0f 100644 --- a/packages/demo/vite.config.ts +++ b/packages/demo/vite.config.ts @@ -54,6 +54,7 @@ function generateAliases() { // https://vitejs.dev/config/ export default defineConfig(({ command }) => { const devMode = command == "serve"; + const aliases = generateAliases(); return { base: "/", @@ -67,13 +68,13 @@ export default defineConfig(({ command }) => { outDir: BUILD_DIR }, resolve: { - alias: devMode ? generateAliases() : {}, + alias: devMode ? aliases : {}, }, server: { port: 3000, }, optimizeDeps: { - exclude: devMode ? ["prozilla-os"] : [] + exclude: devMode ? Object.keys(aliases) : [] } }; }); \ No newline at end of file diff --git a/packages/prozilla-os/CHANGELOG.md b/packages/prozilla-os/CHANGELOG.md index 7a6a4db..f727a05 100644 --- a/packages/prozilla-os/CHANGELOG.md +++ b/packages/prozilla-os/CHANGELOG.md @@ -1,5 +1,12 @@ # prozilla-os +## 1.2.1 + +### Patch Changes + +- Updated dependencies + - @prozilla-os/terminal@1.1.1 + ## 1.2.0 ### Minor Changes diff --git a/packages/prozilla-os/package.json b/packages/prozilla-os/package.json index 259c672..6da1d38 100644 --- a/packages/prozilla-os/package.json +++ b/packages/prozilla-os/package.json @@ -1,7 +1,7 @@ { "name": "prozilla-os", "description": "a React component library written in TypeScript for building web-based operating systems, made by Prozilla.", - "version": "1.2.0", + "version": "1.2.1", "homepage": "https://os.prozilla.dev", "author": { "name": "Prozilla",