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(