pwsh-guide 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/bin/pwsh-guide.js +11 -0
- package/package.json +1 -1
- package/src/probe.js +18 -1
package/README.md
CHANGED
package/bin/pwsh-guide.js
CHANGED
|
@@ -4,10 +4,14 @@
|
|
|
4
4
|
import { parseArgs } from 'node:util';
|
|
5
5
|
import fs from 'node:fs';
|
|
6
6
|
import path from 'node:path';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
7
8
|
import { probeEnvironment } from '../src/probe.js';
|
|
8
9
|
import { resolveSkillDir } from '../src/detect.js';
|
|
9
10
|
import { renderSkill, renderEnvironment, renderCommands } from '../src/render.js';
|
|
10
11
|
|
|
12
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
13
|
+
const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '..', 'package.json'), 'utf8'));
|
|
14
|
+
|
|
11
15
|
const USAGE = `pwsh-guide - 生成项目级 Shell 操作指南 Agent Skill(跨平台:Windows PowerShell / macOS / Linux)
|
|
12
16
|
|
|
13
17
|
用法:
|
|
@@ -17,6 +21,7 @@ const USAGE = `pwsh-guide - 生成项目级 Shell 操作指南 Agent Skill(跨
|
|
|
17
21
|
|
|
18
22
|
选项:
|
|
19
23
|
--dry-run 只输出探测 JSON(用于调试)
|
|
24
|
+
-v, --version 显示版本号
|
|
20
25
|
-h, --help 显示本帮助
|
|
21
26
|
`;
|
|
22
27
|
|
|
@@ -25,10 +30,16 @@ async function main() {
|
|
|
25
30
|
allowPositionals: true,
|
|
26
31
|
options: {
|
|
27
32
|
'dry-run': { type: 'boolean', default: false },
|
|
33
|
+
version: { type: 'boolean', short: 'v', default: false },
|
|
28
34
|
help: { type: 'boolean', short: 'h', default: false },
|
|
29
35
|
},
|
|
30
36
|
});
|
|
31
37
|
|
|
38
|
+
if (values.version) {
|
|
39
|
+
console.log(pkg.version);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
32
43
|
const command = positionals[0] ?? 'help';
|
|
33
44
|
if (values.help || command === 'help') {
|
|
34
45
|
console.log(USAGE);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pwsh-guide",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Generate a project-level Agent Skill: probe the current environment (Windows PowerShell / macOS / Linux shell) and produce a reliable command guide (SKILL.md + references) for agents such as Codex and Claude Code.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/src/probe.js
CHANGED
|
@@ -30,6 +30,22 @@ const MARKER_NAMES = [
|
|
|
30
30
|
const IGNORED_SUBDIRS = new Set(['.git', '.venv', 'venv', 'node_modules']);
|
|
31
31
|
const VERSION_TIMEOUT_MS = 5000;
|
|
32
32
|
|
|
33
|
+
// `--version` 输出命中这些模式时视为错误信息而非版本号(如 Windows py 启动器未安装 Python)
|
|
34
|
+
const VERSION_ERROR_PATTERNS = [
|
|
35
|
+
/not found/i,
|
|
36
|
+
/not installed/i,
|
|
37
|
+
/no installed/i,
|
|
38
|
+
/not recognized/i,
|
|
39
|
+
/command not found/i,
|
|
40
|
+
/内部或外部命令/,
|
|
41
|
+
/找不到/,
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
function isPlausibleVersion(text) {
|
|
45
|
+
if (!text) return false;
|
|
46
|
+
return !VERSION_ERROR_PATTERNS.some((re) => re.test(text));
|
|
47
|
+
}
|
|
48
|
+
|
|
33
49
|
export async function probeEnvironment(cwd) {
|
|
34
50
|
const platform = process.platform; // 'win32' | 'darwin' | 'linux'(其它平台按 unix 处理)
|
|
35
51
|
const family = platform === 'win32' ? 'powershell' : 'unix';
|
|
@@ -124,7 +140,8 @@ async function probeTools() {
|
|
|
124
140
|
results.push({ name, version: null, source: null });
|
|
125
141
|
continue;
|
|
126
142
|
}
|
|
127
|
-
const
|
|
143
|
+
const rawVersion = await runVersionCommand(toolPath);
|
|
144
|
+
const version = isPlausibleVersion(rawVersion) ? rawVersion : null;
|
|
128
145
|
results.push({ name, version, source: toolPath });
|
|
129
146
|
}
|
|
130
147
|
return results;
|