diff --git a/package-lock.json b/package-lock.json index 9405cc2..33850b4 100644 Binary files a/package-lock.json and b/package-lock.json differ diff --git a/package.json b/package.json index 968c227..b23ac16 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fwdekker.com", - "version": "0.37.2", + "version": "0.37.3", "description": "The source code of [my personal website](https://fwdekker.com/).", "author": "Felix W. Dekker", "browser": "dist/bundle.js", @@ -23,9 +23,9 @@ }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.1", - "@types/chai": "^4.2.11", + "@types/chai": "^4.2.12", "@types/js-cookie": "^2.2.6", - "@types/mocha": "^8.0.0", + "@types/mocha": "^8.0.1", "@types/semver": "^6.2.1", "chai": "^4.2.0", "grunt": "^1.2.1", @@ -33,15 +33,15 @@ "grunt-contrib-clean": "^2.0.0", "grunt-contrib-copy": "^1.0.0", "grunt-text-replace": "^0.4.0", - "grunt-webpack": "^3.1.3", + "grunt-webpack": "^4.0.2", "jsdom": "^16.3.0", "jsdom-global": "^3.0.2", - "mocha": "^8.0.1", + "mocha": "^8.1.1", "nyc": "^15.1.0", "ts-loader": "^8.0.1", "ts-node": "^8.10.2", "typescript": "^3.9.7", - "webpack": "^4.43.0", + "webpack": "^4.44.1", "webpack-cli": "^3.3.12" } } diff --git a/src/main/js/Commands.ts b/src/main/js/Commands.ts index e8ae708..7d2f390 100644 --- a/src/main/js/Commands.ts +++ b/src/main/js/Commands.ts @@ -916,10 +916,15 @@ return new Command( return new Command( (input, streams) => { try { - if (input.argc === 1) + if (input.argc === 0) { + Object.keys(josh.environment.variables) + .sort() + .forEach((key) => streams.out.writeLine(\`\${key} \${josh.environment.variables[key]}\`)); + } else if (input.argc === 1) { josh.environment.safeDelete(input.args[0]); - else + } else { josh.environment.safeSet(input.args[0], input.args[1]); + } return ExitCode.OK; } catch (error) { @@ -928,10 +933,13 @@ return new Command( } }, \`set environment variable\`, - \`set key [value]\`, + \`set [key [value]]\`, \`Sets the environment variable key to value. If no value is given, the environment ${n} - variable is cleared. Read-only variables cannot be set.\`.trimMultiLines(), - new InputValidator({minArgs: 1, maxArgs: 2}) + variable is cleared. Read-only variables cannot be set or cleared. + + If neither key nor value is given, a list of all environment variables with current values is given. + \`.trimMultiLines(), + new InputValidator({minArgs: 0, maxArgs: 2}) )`, "touch": /* language=JavaScript */ `\ return new Command(