fnva 0.0.1 → 0.0.2

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 CHANGED
@@ -1,4 +1,4 @@
1
- # 环境切换工具 (nva)
1
+ # 环境切换工具 (fnva)
2
2
 
3
3
  跨平台环境切换工具,支持 Java 和 LLM 环境配置管理。
4
4
 
@@ -17,16 +17,16 @@
17
17
 
18
18
  ```bash
19
19
  # 全局安装
20
- npm install -g nva
20
+ npm install -g fnva
21
21
 
22
22
  # 或使用 yarn
23
- yarn global add nva
23
+ yarn global add fnva
24
24
 
25
25
  # 或使用 pnpm
26
- pnpm add -g nva
26
+ pnpm add -g fnva
27
27
  ```
28
28
 
29
- 安装完成后,可以直接使用 `nva` 命令。
29
+ 安装完成后,可以直接使用 `fnva` 命令。
30
30
 
31
31
  ### 从源码构建
32
32
 
@@ -38,7 +38,7 @@ cd cool-utils
38
38
  npm run build
39
39
  ```
40
40
 
41
- 编译后的二进制文件位于 `platforms/<platform>/nva`。
41
+ 编译后的二进制文件位于 `platforms/<platform>/fnva`。
42
42
 
43
43
  #### 构建所有平台
44
44
 
@@ -62,7 +62,7 @@ npm run build:all
62
62
 
63
63
  ```bash
64
64
  # Linux/macOS
65
- sudo ln -s $(pwd)/target/release/nva /usr/local/bin/nva
65
+ sudo ln -s $(pwd)/target/release/fnva /usr/local/bin/fnva
66
66
 
67
67
  # 或添加到 ~/.bashrc 或 ~/.zshrc
68
68
  export PATH="$PATH:$(pwd)/target/release"
@@ -75,35 +75,35 @@ export PATH="$PATH:$(pwd)/target/release"
75
75
  #### 列出所有 Java 环境
76
76
 
77
77
  ```bash
78
- nva java list
78
+ fnva java list
79
79
  ```
80
80
 
81
81
  #### 扫描系统中的 Java 安装
82
82
 
83
83
  ```bash
84
- nva java scan
84
+ fnva java scan
85
85
  ```
86
86
 
87
87
  #### 添加 Java 环境
88
88
 
89
89
  ```bash
90
- nva java add --name jdk-17 --home /usr/lib/jvm/java-17-openjdk --description "OpenJDK 17"
90
+ fnva java add --name jdk-17 --home /usr/lib/jvm/java-17-openjdk --description "OpenJDK 17"
91
91
  ```
92
92
 
93
93
  #### 切换到 Java 环境
94
94
 
95
95
  ```bash
96
96
  # 自动检测 shell
97
- eval "$(nva java use jdk-17)"
97
+ eval "$(fnva java use jdk-17)"
98
98
 
99
99
  # 指定 shell
100
- eval "$(nva java use jdk-17 --shell bash)"
100
+ eval "$(fnva java use jdk-17 --shell bash)"
101
101
  ```
102
102
 
103
103
  #### 删除 Java 环境
104
104
 
105
105
  ```bash
106
- nva java remove jdk-17
106
+ fnva java remove jdk-17
107
107
  ```
108
108
 
109
109
  ### LLM 环境管理
@@ -111,13 +111,13 @@ nva java remove jdk-17
111
111
  #### 列出所有 LLM 环境
112
112
 
113
113
  ```bash
114
- nva llm list
114
+ fnva llm list
115
115
  ```
116
116
 
117
117
  #### 查看支持的提供商
118
118
 
119
119
  ```bash
120
- nva llm providers
120
+ fnva llm providers
121
121
  ```
122
122
 
123
123
  支持的提供商:
@@ -133,7 +133,7 @@ nva llm providers
133
133
 
134
134
  ```bash
135
135
  # OpenAI
136
- nva llm add \
136
+ fnva llm add \
137
137
  --name openai-dev \
138
138
  --provider openai \
139
139
  --api-key "${OPENAI_API_KEY}" \
@@ -141,14 +141,14 @@ nva llm add \
141
141
  --temperature 0.7
142
142
 
143
143
  # Anthropic
144
- nva llm add \
144
+ fnva llm add \
145
145
  --name anthropic-prod \
146
146
  --provider anthropic \
147
147
  --api-key "${ANTHROPIC_API_KEY}" \
148
148
  --model claude-3-opus-20240229
149
149
 
150
150
  # Ollama (本地)
151
- nva llm add \
151
+ fnva llm add \
152
152
  --name ollama-local \
153
153
  --provider ollama \
154
154
  --base-url http://localhost:11434 \
@@ -159,23 +159,23 @@ nva llm add \
159
159
 
160
160
  ```bash
161
161
  # 自动检测 shell
162
- eval "$(nva llm use openai-dev)"
162
+ eval "$(fnva llm use openai-dev)"
163
163
 
164
164
  # 指定 shell (PowerShell)
165
- nva llm use openai-dev --shell powershell | Invoke-Expression
165
+ fnva llm use openai-dev --shell powershell | Invoke-Expression
166
166
  ```
167
167
 
168
168
  #### 删除 LLM 环境
169
169
 
170
170
  ```bash
171
- nva llm remove openai-dev
171
+ fnva llm remove openai-dev
172
172
  ```
173
173
 
174
174
  ## 配置文件
175
175
 
176
176
  配置文件位置:
177
- - **Linux/macOS**: `~/.nva/config.toml`
178
- - **Windows**: `%USERPROFILE%\.nva\config.toml`
177
+ - **Linux/macOS**: `~/.fnva/config.toml`
178
+ - **Windows**: `%USERPROFILE%\.fnva\config.toml`
179
179
 
180
180
  首次运行时会自动创建配置文件。
181
181
 
@@ -217,12 +217,12 @@ api_key = "${OPENAI_API_KEY}" # 从系统环境变量读取
217
217
 
218
218
  ```bash
219
219
  # 快速切换 Java 环境
220
- alias java17='eval "$(nva java use jdk-17)"'
221
- alias java11='eval "$(nva java use jdk-11)"'
220
+ alias java17='eval "$(fnva java use jdk-17)"'
221
+ alias java11='eval "$(fnva java use jdk-11)"'
222
222
 
223
223
  # 快速切换 LLM 环境
224
- alias llm-openai='eval "$(nva llm use openai-dev)"'
225
- alias llm-anthropic='eval "$(nva llm use anthropic-prod)"'
224
+ alias llm-openai='eval "$(fnva llm use openai-dev)"'
225
+ alias llm-anthropic='eval "$(fnva llm use anthropic-prod)"'
226
226
  ```
227
227
 
228
228
  ### Fish
@@ -231,11 +231,11 @@ alias llm-anthropic='eval "$(nva llm use anthropic-prod)"'
231
231
 
232
232
  ```fish
233
233
  function java17
234
- nva java use jdk-17 | source
234
+ fnva java use jdk-17 | source
235
235
  end
236
236
 
237
237
  function llm-openai
238
- nva llm use openai-dev | source
238
+ fnva llm use openai-dev | source
239
239
  end
240
240
  ```
241
241
 
@@ -246,12 +246,12 @@ end
246
246
  ```powershell
247
247
  function Switch-Java {
248
248
  param([string]$Name)
249
- nva java use $Name | Invoke-Expression
249
+ fnva java use $Name | Invoke-Expression
250
250
  }
251
251
 
252
252
  function Switch-Llm {
253
253
  param([string]$Name)
254
- nva llm use $Name | Invoke-Expression
254
+ fnva llm use $Name | Invoke-Expression
255
255
  }
256
256
  ```
257
257
 
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
2
 
3
- # nva - 跨平台环境切换工具
3
+ # fnva - 跨平台环境切换工具
4
4
  # 根据当前平台和架构选择对应的二进制文件并执行
5
5
 
6
6
  # 获取脚本所在目录
@@ -41,15 +41,22 @@ esac
41
41
 
42
42
  # 构建二进制文件路径
43
43
  PLATFORM_DIR="$PLATFORM-$CPU"
44
- BINARY_PATH="$PROJECT_ROOT/platforms/$PLATFORM_DIR/nva"
44
+ BINARY_PATH="$PROJECT_ROOT/platforms/$PLATFORM_DIR/fnva"
45
45
 
46
46
  # 检查二进制文件是否存在
47
47
  if [ ! -f "$BINARY_PATH" ]; then
48
48
  echo "错误: 未找到二进制文件: $BINARY_PATH" >&2
49
- echo "请运行 'npm run build' 构建二进制文件" >&2
49
+ echo "" >&2
50
+ echo "请尝试以下解决方案:" >&2
51
+ echo "1. 运行 'npm run build' 构建当前平台二进制文件" >&2
52
+ echo "2. 运行 'npm run build:all' 构建所有平台二进制文件" >&2
53
+ echo "3. 或者从 GitHub Releases 下载预编译的二进制文件" >&2
54
+ echo "" >&2
55
+ echo "如果问题仍然存在,请确保:" >&2
56
+ echo "- 已安装 Rust 工具链" >&2
57
+ echo "- 平台目录结构正确: platforms/$PLATFORM_DIR/" >&2
50
58
  exit 1
51
59
  fi
52
60
 
53
61
  # 执行二进制文件,传递所有参数
54
- exec "$BINARY_PATH" "$@"
55
-
62
+ exec "$BINARY_PATH" "$@"
package/bin/fnva.bat ADDED
@@ -0,0 +1,34 @@
1
+ @echo off
2
+ REM fnva - 跨平台环境切换工具 Windows 启动脚本
3
+ REM 根据当前平台和架构选择对应的二进制文件并执行
4
+
5
+ setlocal enabledelayedexpansion
6
+
7
+ REM 获取脚本所在目录
8
+ set SCRIPT_DIR=%~dp0
9
+ set PROJECT_ROOT=%SCRIPT_DIR%..
10
+
11
+ REM 检测架构
12
+ set ARCH=%PROCESSOR_ARCHITECTURE%
13
+ if /i "%ARCH%"=="AMD64" (
14
+ set CPU=x64
15
+ ) else if /i "%ARCH%"=="ARM64" (
16
+ set CPU=arm64
17
+ ) else (
18
+ echo 警告: 未识别的架构 %ARCH%,使用 x64 >&2
19
+ set CPU=x64
20
+ )
21
+
22
+ REM 构建二进制文件路径
23
+ set PLATFORM_DIR=win32-%CPU%
24
+ set BINARY_PATH=%PROJECT_ROOT%platforms\%PLATFORM_DIR%\fnva.exe
25
+
26
+ REM 检查二进制文件是否存在
27
+ if not exist "%BINARY_PATH%" (
28
+ echo 错误: 未找到二进制文件: %BINARY_PATH% >&2
29
+ echo 请运行 'npm run build' 构建二进制文件 >&2
30
+ exit /b 1
31
+ )
32
+
33
+ REM 执行二进制文件,传递所有参数
34
+ "%BINARY_PATH%" %*
@@ -1,5 +1,5 @@
1
1
  @echo off
2
- REM nva - Windows CMD 启动脚本
2
+ REM fnva - Windows CMD 启动脚本
3
3
 
4
4
  setlocal
5
5
 
@@ -15,7 +15,7 @@ if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
15
15
 
16
16
  REM 构建二进制文件路径
17
17
  set PLATFORM_DIR=%OS%-%ARCH%
18
- set BINARY_PATH=%~dp0..\platforms\%PLATFORM_DIR%\nva.exe
18
+ set BINARY_PATH=%~dp0..\platforms\%PLATFORM_DIR%\fnva.exe
19
19
 
20
20
  REM 检查二进制文件是否存在
21
21
  if not exist "%BINARY_PATH%" (
@@ -27,5 +27,4 @@ if not exist "%BINARY_PATH%" (
27
27
  REM 执行二进制文件
28
28
  "%BINARY_PATH%" %*
29
29
 
30
- endlocal
31
-
30
+ endlocal
@@ -1,4 +1,4 @@
1
- # nva - Windows PowerShell 启动脚本
1
+ # fnva - Windows PowerShell 启动脚本
2
2
 
3
3
  param(
4
4
  [Parameter(ValueFromRemainingArguments=$true)]
@@ -12,7 +12,7 @@ $arch = if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { "arm64" } else { "x64" }
12
12
  # 构建二进制文件路径
13
13
  $platformDir = "$os-$arch"
14
14
  $scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
15
- $binaryPath = Join-Path $scriptDir ".." "platforms" $platformDir "nva.exe"
15
+ $binaryPath = Join-Path $scriptDir ".." "platforms" $platformDir "fnva.exe"
16
16
 
17
17
  # 检查二进制文件是否存在
18
18
  if (-not (Test-Path $binaryPath)) {
@@ -26,5 +26,4 @@ if (-not (Test-Path $binaryPath)) {
26
26
 
27
27
  if ($LASTEXITCODE) {
28
28
  exit $LASTEXITCODE
29
- }
30
-
29
+ }
package/package.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "name": "fnva",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "跨平台环境切换工具,支持 Java 和 LLM 环境配置",
5
5
  "author": "protagonistss",
6
6
  "license": "MIT",
7
7
  "bin": {
8
- "nva": "./bin/nva"
8
+ "fnva": "./bin/fnva",
9
+ "fnva.cmd": "./bin/fnva.cmd",
10
+ "fnva.exe": "./bin/fnva.bat"
9
11
  },
10
12
  "scripts": {
11
13
  "prepublishOnly": "scripts/prepare-publish.sh",
@@ -33,11 +35,11 @@
33
35
  "llm",
34
36
  "cli",
35
37
  "tool",
36
- "nva"
38
+ "fnva"
37
39
  ],
38
40
  "repository": {
39
41
  "type": "git",
40
- "url": "https://github.com/Protagonistss/cool-utils.git"
42
+ "url": "https://github.com/Protagonistss/fnva.git"
41
43
  },
42
44
  "engines": {
43
45
  "node": ">=14.0.0"
Binary file
Binary file
Binary file