iflow-comm 1.0.0
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/Formula/iflow-cli.rb +17 -0
- package/PUBLISH.md +54 -0
- package/README.md +255 -0
- package/bin/iflow-comm.js +28 -0
- package/package.json +1 -0
- package/scripts/postinstall.js +54 -0
- package/scripts/preuninstall.js +34 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
class IflowCli < Formula
|
|
2
|
+
desc "AI-powered CLI that embeds in your terminal for coding tasks and workflow automation"
|
|
3
|
+
homepage "https://platform.iflow.cn"
|
|
4
|
+
url "https://registry.npmjs.org/@iflow-ai/iflow-cli/-/iflow-cli-0.5.14.tgz"
|
|
5
|
+
sha256 "7d715c3dc611e3134aaa96a1f68467471b2c50c9b04fba093f4bc4b2ad17b599"
|
|
6
|
+
|
|
7
|
+
depends_on "node@22"
|
|
8
|
+
|
|
9
|
+
def install
|
|
10
|
+
system "npm", "install", *std_npm_args
|
|
11
|
+
bin.install_symlink libexec.glob("bin/*")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
test do
|
|
15
|
+
assert_match "iflow", shell_output("#{bin}/iflow --version 2>&1", 0)
|
|
16
|
+
end
|
|
17
|
+
end
|
package/PUBLISH.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# iflow-comm 发布指南
|
|
2
|
+
|
|
3
|
+
这是 iFlow CLI 的自定义版本,使用命令名 `iflow-comm` 代替 `iflow`。
|
|
4
|
+
|
|
5
|
+
## 本地测试
|
|
6
|
+
|
|
7
|
+
在发布到 npm 之前,先本地测试:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 安装本地包
|
|
11
|
+
npm link
|
|
12
|
+
|
|
13
|
+
# 测试命令
|
|
14
|
+
iflow-comm --version
|
|
15
|
+
iflow-comm
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 发布到 npm
|
|
19
|
+
|
|
20
|
+
### 前提条件
|
|
21
|
+
|
|
22
|
+
1. 拥有 npm 账号
|
|
23
|
+
2. 登录 npm:`npm login`
|
|
24
|
+
|
|
25
|
+
### 发布步骤
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# 1. 确保版本号正确
|
|
29
|
+
npm version patch # 或 minor, major
|
|
30
|
+
|
|
31
|
+
# 2. 发布到 npm
|
|
32
|
+
npm publish
|
|
33
|
+
|
|
34
|
+
# 3. 或者发布 beta 版本
|
|
35
|
+
npm publish --tag beta
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 使用
|
|
39
|
+
|
|
40
|
+
安装后,用户可以:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# 全局安装
|
|
44
|
+
npm install -g iflow-comm
|
|
45
|
+
|
|
46
|
+
# 运行
|
|
47
|
+
iflow-comm
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 注意事项
|
|
51
|
+
|
|
52
|
+
- 此包依赖 `@iflow-ai/iflow-cli`
|
|
53
|
+
- 安装后会自动创建 `iflow-comm` 命令
|
|
54
|
+
- 卸载时会自动清理相关文件
|
package/README.md
ADDED
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
> [!IMPORTANT]
|
|
2
|
+
> **iFlow CLI will be shutting down on April 17, 2026 (UTC+8).** Thank you for every moment with iFlow CLI in your terminal. For details and migration guidance, please see our [farewell post](https://vibex.iflow.cn/t/topic/4819).
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 🤖 iFlow CLI
|
|
7
|
+
|
|
8
|
+
[](https://github.com/Piebald-AI/awesome-gemini-cli)
|
|
9
|
+
|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
**English** | [中文](README_CN.md) | [日本語](README_JA.md) | [한국어](README_KO.md) | [Français](README_FR.md) | [Deutsch](README_DE.md) | [Español](README_ES.md) | [Русский](README_RU.md)
|
|
13
|
+
|
|
14
|
+
iFlow CLI is a powerful AI assistant that runs directly in your terminal. It seamlessly analyzes code repositories, executes coding tasks, understands context-specific needs, and boosts productivity by automating everything from simple file operations to complex workflows.
|
|
15
|
+
|
|
16
|
+
[More Tutorials](https://platform.iflow.cn/)
|
|
17
|
+
|
|
18
|
+
## ✨ Key Features
|
|
19
|
+
|
|
20
|
+
1. **Free AI Models**: Access powerful and free AI models through the [iFlow open platform](https://platform.iflow.cn/docs/api-mode), including Kimi K2, Qwen3 Coder, DeepSeek v3, and more
|
|
21
|
+
2. **Flexible Integration**: Keep your favorite development tools while integrating into existing systems for automation
|
|
22
|
+
3. **Natural Language Interaction**: Say goodbye to complex commands, drive AI with everyday conversation, from code development to life assistance
|
|
23
|
+
4. **Open Platform**: Install SubAgents and MCP with one click from the [iFlow Open Market](https://platform.iflow.cn/), quickly expand intelligent agents and build your own AI team
|
|
24
|
+
|
|
25
|
+
## Feature Comparison
|
|
26
|
+
| Feature | iFlow Cli | Claude Code | Gemini Cli |
|
|
27
|
+
|---------|-----------|-------------|------------|
|
|
28
|
+
| Todo Planning | ✅ | ✅ | ❌ |
|
|
29
|
+
| SubAgent | ✅ | ✅ | ❌ |
|
|
30
|
+
| Custom Commands | ✅ | ✅ | ✅ |
|
|
31
|
+
| Plan Mode | ✅ | ✅ | ❌ |
|
|
32
|
+
| Task Tools | ✅ | ✅ | ❌ |
|
|
33
|
+
| VS Code Plugin | ✅ | ✅ | ✅ |
|
|
34
|
+
| JetBrains Plugin | ✅ | ✅ | ❌ |
|
|
35
|
+
| Conversation Recovery | ✅ | ✅ | ❌ |
|
|
36
|
+
| Built-in Open Market | ✅ | ❌ | ❌ |
|
|
37
|
+
| Memory Auto-compression | ✅ | ✅ | ✅ |
|
|
38
|
+
| Multimodal Capability | ✅ | ⚠️ (Limited in China) | ⚠️ (Limited in China) |
|
|
39
|
+
| Search | ✅ | ❌ | ⚠️ (Requires VPN) |
|
|
40
|
+
| Free | ✅ | ❌ | ⚠️ (Limited Usage) |
|
|
41
|
+
| Hook | ✅ | ✅ | ❌ |
|
|
42
|
+
| Output Style | ✅ | ✅ | ❌ |
|
|
43
|
+
| Thinking | ✅ | ✅ | ❌ |
|
|
44
|
+
| Workflow | ✅ | ❌ | ❌ |
|
|
45
|
+
| SDK | ✅ | ✅ | ❌ |
|
|
46
|
+
| ACP | ✅ | ✅ | ✅ |
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## ⭐ Key Features
|
|
50
|
+
* Support 4 running modes: yolo (model has maximum permissions, can perform any operation), accepting edits (model only has file modification permissions), plan mode (plan first, then execute), default (model has no permissions)
|
|
51
|
+
* Upgraded subAgent functionality: Transform CLI from general assistant to expert team, providing more professional and accurate advice. Use /agent to see more pre-configured agents
|
|
52
|
+
* Upgraded task tool: Effectively compress context length, allowing CLI to complete your tasks more thoroughly. Auto-compression when context reaches 70%
|
|
53
|
+
* Integrated with iFlow Open Market: Quickly install useful MCP tools, Subagents, custom instructions and workflows
|
|
54
|
+
* Free multimodal model usage: You can also paste images in CLI now (Ctrl+V to paste images)
|
|
55
|
+
* Support for conversation history saving and rollback (iflow --resume and /chat commands)
|
|
56
|
+
* Support for more useful terminal commands (iflow -h to see more commands)
|
|
57
|
+
* VSCode plugin support
|
|
58
|
+
* Auto-upgrade: iFlow CLI automatically detects if current version is latest
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
## 📥 Installation
|
|
62
|
+
|
|
63
|
+
### System requirements
|
|
64
|
+
- Operating Systems: macOS 10.15+, Ubuntu 20.04+/Debian 10+, or Windows 10+ (with WSL 1, WSL 2, or Git for Windows)
|
|
65
|
+
- Hardware: 4GB+ RAM
|
|
66
|
+
- Software: Node.js 22+
|
|
67
|
+
- Network: Internet connection required for authentication and AI processing
|
|
68
|
+
- Shell: Works best in Bash, Zsh or Fish
|
|
69
|
+
|
|
70
|
+
### Installation Commands
|
|
71
|
+
**MAC/Linux/Ubuntu Users**:
|
|
72
|
+
* One-click installation command (Recommended)
|
|
73
|
+
```shell
|
|
74
|
+
bash -c "$(curl -fsSL https://cloud.iflow.cn/iflow-cli/install.sh)"
|
|
75
|
+
```
|
|
76
|
+
* Using Homebrew installation
|
|
77
|
+
```shell
|
|
78
|
+
brew tap iflow-ai/iflow-cli
|
|
79
|
+
brew install iflow-cli
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
* Using Node.js installation
|
|
83
|
+
```shell
|
|
84
|
+
npm i -g @iflow-ai/iflow-cli
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
This command automatically installs all necessary dependencies for your terminal.
|
|
88
|
+
|
|
89
|
+
**Windows Users**:
|
|
90
|
+
1. Go to https://nodejs.org/en/download to download the latest Node.js installer
|
|
91
|
+
2. Run the installer to install Node.js
|
|
92
|
+
3. Restart your terminal: CMD or PowerShell
|
|
93
|
+
4. Run `npm install -g @iflow-ai/iflow-cli` to install iFlow CLI
|
|
94
|
+
5. Run `iflow` to start iFlow CLI
|
|
95
|
+
|
|
96
|
+
If you are in China Mainland, you can use the following command to install iFlow CLI:
|
|
97
|
+
1. Go to https://cloud.iflow.cn/iflow-cli/nvm-setup.exe to download the latest nvm installer
|
|
98
|
+
2. Run the installer to install nvm
|
|
99
|
+
3. **Restart your terminal: CMD or PowerShell**
|
|
100
|
+
4. Run `nvm node_mirror https://npmmirror.com/mirrors/node/` and `nvm npm_mirror https://npmmirror.com/mirrors/npm/`
|
|
101
|
+
5. Run `nvm install 22` to install Node.js 22
|
|
102
|
+
6. Run `nvm use 22` to use Node.js 22
|
|
103
|
+
7. Run `npm install -g @iflow-ai/iflow-cli` to install iFlow CLI
|
|
104
|
+
8. Run `iflow` to start iFlow CLI
|
|
105
|
+
|
|
106
|
+
## 🗑️ Uninstall
|
|
107
|
+
```shell
|
|
108
|
+
npm uninstall -g @iflow-ai/iflow-cli
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## 🔑 Authentication
|
|
112
|
+
|
|
113
|
+
iFlow CLI supports OpenAI-compatible APIs for authentication and model access.
|
|
114
|
+
|
|
115
|
+
To configure your API credentials, edit the settings file in `~/.iflow/settings.json`:
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"selectedAuthType": "openai-compatible",
|
|
120
|
+
"apiKey": "your_api_key",
|
|
121
|
+
"baseUrl": "https://api.openai.com/v1",
|
|
122
|
+
"modelName": "gpt-4"
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
You can also set these values using environment variables:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
export IFLOW_apiKey="your_api_key"
|
|
130
|
+
export IFLOW_baseUrl="https://api.openai.com/v1"
|
|
131
|
+
export IFLOW_modelName="gpt-4"
|
|
132
|
+
iflow
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## 🚀 Getting Started
|
|
136
|
+
|
|
137
|
+
To launch iFlow CLI, navigate to your workspace in the terminal and type:
|
|
138
|
+
|
|
139
|
+
```shell
|
|
140
|
+
iflow
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Starting New Projects
|
|
144
|
+
|
|
145
|
+
For new projects, simply describe what you want to create:
|
|
146
|
+
|
|
147
|
+
```shell
|
|
148
|
+
cd new-project/
|
|
149
|
+
iflow
|
|
150
|
+
> Create a web-based Minecraft game using HTML
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Working with Existing Projects
|
|
154
|
+
|
|
155
|
+
For existing codebases, begin with the `/init` command to help iFlow understand your project:
|
|
156
|
+
|
|
157
|
+
```shell
|
|
158
|
+
cd project1/
|
|
159
|
+
iflow
|
|
160
|
+
> /init
|
|
161
|
+
> Analyze the requirements according to the PRD document in requirement.md file, and output a technical document, then implement the solution.
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
The `/init` command scans your codebase, learns its structure, and creates an IFLOW.md file with comprehensive documentation.
|
|
165
|
+
|
|
166
|
+
For a complete list of slash commands and usage instructions, see [here](./i18/en/commands.md).
|
|
167
|
+
|
|
168
|
+
## 💡 Common Use Cases
|
|
169
|
+
|
|
170
|
+
iFlow CLI extends beyond coding to handle a wide range of tasks:
|
|
171
|
+
|
|
172
|
+
### 📊 Information & Planning
|
|
173
|
+
|
|
174
|
+
```text
|
|
175
|
+
> Help me find the best-rated restaurants in Los Angeles and create a 3-day food tour itinerary.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
```text
|
|
179
|
+
> Search for the latest iPhone price comparisons and find the most cost-effective purchase option.
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### 📁 File Management
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
> Organize the files on my desktop by file type into separate folders.
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
> Batch download all images from this webpage and rename them by date.
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### 📈 Data Analysis
|
|
193
|
+
|
|
194
|
+
```text
|
|
195
|
+
> Analyze the sales data in this Excel spreadsheet and generate a simple chart.
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
```text
|
|
199
|
+
> Extract customer information from these CSV files and merge them into a unified table.
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### 👨💻 Development Support
|
|
203
|
+
|
|
204
|
+
```text
|
|
205
|
+
> Analyze the main architectural components and module dependencies of this system.
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
```text
|
|
209
|
+
> I'm getting a null pointer exception after my request, please help me find the cause of the problem.
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### ⚙️ Workflow Automation
|
|
213
|
+
|
|
214
|
+
```text
|
|
215
|
+
> Create a script to periodically backup my important files to cloud storage.
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
```text
|
|
219
|
+
> Write a program that downloads stock prices daily and sends me email notifications.
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
*Note: Advanced automation tasks can leverage MCP servers to integrate your local system tools with enterprise collaboration suites.*
|
|
223
|
+
|
|
224
|
+
## 🔧 Switch to customized model
|
|
225
|
+
|
|
226
|
+
iFlow CLI can connect to any OpenAI-compatible API. Edit the settings file in `~/.iflow/settings.json` to change the model you use.
|
|
227
|
+
|
|
228
|
+
Here is a settings demo file:
|
|
229
|
+
```json
|
|
230
|
+
{
|
|
231
|
+
"theme": "Default",
|
|
232
|
+
"selectedAuthType": "openai-compatible",
|
|
233
|
+
"apiKey": "your_api_key",
|
|
234
|
+
"baseUrl": "https://api.openai.com/v1",
|
|
235
|
+
"modelName": "gpt-4"
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## 🔄 GitHub Actions
|
|
240
|
+
|
|
241
|
+
You can also use iFlow CLI in your GitHub Actions workflows with the community-maintained action: [iflow-cli-action](https://github.com/iflow-ai/iflow-cli-action)
|
|
242
|
+
|
|
243
|
+
## 🖥️ Graphical Interface
|
|
244
|
+
|
|
245
|
+
Looking for a graphical interface?
|
|
246
|
+
|
|
247
|
+
- [**AionUi**](https://github.com/iOfficeAI/AionUi) A modern GUI for command-line AI tools including iFlow CLI
|
|
248
|
+
|
|
249
|
+
## 👥 Community Communication
|
|
250
|
+
If you encounter problems in use, you can directly raise Issues on the github page.
|
|
251
|
+
|
|
252
|
+
You can also scan the following Wechat group to join the community group for communication and discussion.
|
|
253
|
+
|
|
254
|
+
### Wechat group
|
|
255
|
+

|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* iflow-comm - A wrapper for iflow CLI
|
|
5
|
+
* This script forwards all arguments to the iflow command
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const { spawn } = require('child_process');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
|
|
11
|
+
// Get the path to iflow executable
|
|
12
|
+
const iflowPath = path.join(__dirname, '../node_modules/.bin/iflow');
|
|
13
|
+
|
|
14
|
+
// Spawn iflow with all arguments
|
|
15
|
+
const child = spawn(iflowPath, process.argv.slice(2), {
|
|
16
|
+
stdio: 'inherit',
|
|
17
|
+
shell: process.platform === 'win32'
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
// Handle exit
|
|
21
|
+
child.on('exit', (code) => {
|
|
22
|
+
process.exit(code || 0);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
child.on('error', (err) => {
|
|
26
|
+
console.error('Failed to start iflow:', err.message);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name": "iflow-comm", "version": "1.0.0", "description": "A fork of iFlow CLI with custom command name iflow-comm", "main": "index.js", "bin": {"iflow-comm": "bin/iflow-comm.js"}, "scripts": {"postinstall": "node scripts/postinstall.js", "preuninstall": "node scripts/preuninstall.js"}, "dependencies": {"@iflow-ai/iflow-cli": "latest"}, "keywords": ["ai", "cli", "assistant", "iflow", "iflow-comm"], "author": "", "license": "MIT", "repository": {"type": "git", "url": "https://gitee.com/QQsakura/iflow-cli-comm.git"}, "engines": {"node": ">=20.0.0"}}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Post-install script for iflow-comm
|
|
5
|
+
* Creates symlinks from iflow-comm to iflow
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
|
|
11
|
+
console.log('Setting up iflow-comm...');
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
const npmPrefix = process.env.npm_config_prefix || path.dirname(process.execPath);
|
|
15
|
+
const binDir = path.join(npmPrefix, 'bin');
|
|
16
|
+
|
|
17
|
+
// Ensure bin directory exists
|
|
18
|
+
if (!fs.existsSync(binDir)) {
|
|
19
|
+
fs.mkdirSync(binDir, { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const iflowPath = path.join(binDir, 'iflow');
|
|
23
|
+
const iflowCommPath = path.join(binDir, 'iflow-comm');
|
|
24
|
+
|
|
25
|
+
// Check if iflow exists
|
|
26
|
+
if (!fs.existsSync(iflowPath)) {
|
|
27
|
+
console.warn('Warning: iflow executable not found at', iflowPath);
|
|
28
|
+
console.warn('Please ensure @iflow-ai/iflow-cli is properly installed.');
|
|
29
|
+
process.exit(0);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Remove existing iflow-comm if it exists
|
|
33
|
+
if (fs.existsSync(iflowCommPath)) {
|
|
34
|
+
fs.unlinkSync(iflowCommPath);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Create symlink
|
|
38
|
+
if (process.platform === 'win32') {
|
|
39
|
+
// On Windows, create a .cmd file
|
|
40
|
+
const cmdContent = `@echo off\nnode "%~dp0\\..\\iflow-comm" %*\n`;
|
|
41
|
+
fs.writeFileSync(iflowCommPath + '.cmd', cmdContent);
|
|
42
|
+
console.log('Created iflow-comm.cmd for Windows');
|
|
43
|
+
} else {
|
|
44
|
+
// On Unix-like systems, create a symlink
|
|
45
|
+
fs.symlinkSync(iflowPath, iflowCommPath);
|
|
46
|
+
console.log('Created symlink:', iflowCommPath, '->', iflowPath);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
console.log('iflow-comm has been set up successfully!');
|
|
50
|
+
} catch (error) {
|
|
51
|
+
console.error('Error during postinstall:', error.message);
|
|
52
|
+
console.error('iflow-comm may not work correctly.');
|
|
53
|
+
process.exit(0);
|
|
54
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Pre-uninstall script for iflow-comm
|
|
5
|
+
* Removes symlinks created during installation
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
|
|
11
|
+
console.log('Cleaning up iflow-comm...');
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
const npmPrefix = process.env.npm_config_prefix || path.dirname(process.execPath);
|
|
15
|
+
const binDir = path.join(npmPrefix, 'bin');
|
|
16
|
+
const iflowCommPath = path.join(binDir, 'iflow-comm');
|
|
17
|
+
|
|
18
|
+
// Remove symlink if it exists
|
|
19
|
+
if (fs.existsSync(iflowCommPath)) {
|
|
20
|
+
fs.unlinkSync(iflowCommPath);
|
|
21
|
+
console.log('Removed symlink:', iflowCommPath);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// On Windows, also remove .cmd file
|
|
25
|
+
if (process.platform === 'win32' && fs.existsSync(iflowCommPath + '.cmd')) {
|
|
26
|
+
fs.unlinkSync(iflowCommPath + '.cmd');
|
|
27
|
+
console.log('Removed:', iflowCommPath + '.cmd');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
console.log('Cleanup completed.');
|
|
31
|
+
} catch (error) {
|
|
32
|
+
console.error('Error during preuninstall:', error.message);
|
|
33
|
+
process.exit(0);
|
|
34
|
+
}
|