Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
205 changes: 204 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,204 @@
# devkit-cli
# devkit-cli

开发者工具集命令行工具 - 系统信息、文件重命名、任务管理

---

## 🚀 安装和运行

### 环境要求
- Python 3.8+
- Windows / macOS / Linux

### 安装依赖

```bash
# 克隆或下载项目后,进入项目目录
cd devkit-cli

# 创建虚拟环境(推荐)
python -m venv .venv

# 激活虚拟环境
# Windows (PowerShell):
.venv\Scripts\Activate.ps1

# Windows (CMD):
# .venv\Scripts\activate.bat

# macOS/Linux:
# source .venv/bin/activate

# 安装依赖
pip install typer rich psutil

# 以开发模式安装CLI工具
pip install -e .
```

### 运行方式

**方式一:使用命令行工具(推荐)**
```bash
# 激活虚拟环境后可直接使用
devkit-cli --help
devkit --help # 短名命令也可用
```

**方式二:直接运行Python脚本**
```bash
python devkit.py --help
```

---

## 📖 功能使用说明

### 1. 📊 系统信息 - info 子命令

查看本机系统信息(CPU、内存、磁盘、系统版本),以彩色表格展示。

**使用方法:**
```bash
devkit-cli info show
```

**包含内容:**
- 基本信息(系统版本、架构、主机名)
- CPU信息(物理/逻辑核心数、频率、各核心使用率)
- 内存信息(物理内存、交换内存的总量和使用率)
- 磁盘信息(各分区的文件系统、容量和使用情况)
- 网络接口(IP地址、MAC地址)

---

### 2. 📁 文件重命名 - file 子命令

批量文件重命名,支持自定义前缀、自动编号、扩展名过滤。

**常用命令:**

```bash
# 列出目录中的文件
devkit-cli file list # 当前目录
devkit-cli file list ./photos # 指定目录
devkit-cli file list --ext .jpg # 只显示jpg文件
devkit-cli file list -e .jpg -e .png # 支持多个扩展名

# 预览重命名(不实际执行)
devkit-cli file rename --prefix vacation_ --dry-run

# 实际执行重命名
devkit-cli file rename --prefix img_ --digits 4
devkit-cli file rename --prefix doc_ --start 100

# 指定目录和扩展名
devkit-cli file rename ./photos --prefix summer_ --ext .jpg

# 跳过确认提示
devkit-cli file rename --prefix test_ --yes
```

**参数说明:**
| 参数 | 短名 | 说明 | 默认值 |
|------|------|------|--------|
| `--prefix` | `-p` | 文件名前缀(必填) | - |
| `--start` | `-s` | 起始编号 | 1 |
| `--digits` | `-d` | 编号位数(如 3=001) | 3 |
| `--ext` | `-e` | 指定文件扩展名(可多次使用) | 所有文件 |
| `--dry-run` | `-n` | 预览模式,不实际执行 | False |
| `--yes` | `-y` | 跳过确认提示 | False |

---

### 3. ✅ 任务管理 - todo 子命令

本地任务管理,支持添加、查看、标记完成、删除。

**任务操作:**

```bash
# 添加任务
devkit-cli todo add "完成项目文档"
devkit-cli todo add "代码审查" --desc "审查PR #123" --priority high

# 查看任务列表
devkit-cli todo list # 查看未完成任务
devkit-cli todo list --all # 查看所有任务(包括已完成)
devkit-cli todo list --priority high # 按优先级过滤

# 查看单个任务详情
devkit-cli todo show 1

# 标记任务状态
devkit-cli todo done 1 # 标记完成
devkit-cli todo undone 1 # 标记未完成

# 删除任务
devkit-cli todo delete 1 # 删除(会确认)
devkit-cli todo delete 1 --yes # 删除(跳过确认)

# 清除所有已完成任务
devkit-cli todo clear
```

**优先级选项:**
- `high` - 高优先级(🔴)
- `medium` - 中优先级(🟡,默认)
- `low` - 低优先级(🟢)

**数据存储:**
- 任务数据保存在用户目录下的 `.devkit_todo.json`
- 可直接编辑或备份该文件

---

## 💡 通用功能

### 版本信息
```bash
devkit-cli --version
devkit-cli -v
```

### 帮助信息
```bash
devkit-cli --help
devkit-cli info --help
devkit-cli file --help
devkit-cli todo --help
```

---

## 🌟 特性亮点

- **彩色美化输出:** 使用 Rich 库提供精美的表格和彩色输出
- **参数校验:** 自动校验输入参数,提供友好错误提示
- **进度显示:** 文件重命名时显示实时进度条
- **交互式确认:** 危险操作前提供确认提示
- **零配置:** 开箱即用,无需额外配置文件
- **跨平台:** 支持 Windows、macOS、Linux

---

## 📦 项目结构

```
devkit-cli/
├── devkit_cli/
│ ├── __init__.py # 包初始化
│ ├── cli.py # 主入口和命令调度
│ ├── info.py # 系统信息模块
│ ├── file_rename.py # 文件重命名模块
│ └── todo.py # 任务管理模块
├── devkit.py # 直接运行入口
├── pyproject.toml # 项目配置
└── README.md # 使用说明
```

---

## 📝 许可证

MIT
10 changes: 10 additions & 0 deletions devkit.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env python3
"""
devkit-cli 入口文件
可以直接运行此文件:python devkit.py
"""

from devkit_cli.cli import app

if __name__ == "__main__":
app()
27 changes: 27 additions & 0 deletions devkit_cli.egg-info/PKG-INFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Metadata-Version: 2.4
Name: devkit-cli
Version: 1.0.0
Summary: 开发者工具集命令行工具 - 系统信息、文件重命名、任务管理
Author-email: Developer <dev@example.com>
Project-URL: Homepage, https://github.com/example/devkit-cli
Project-URL: Bug Tracker, https://github.com/example/devkit-cli/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Classifier: Topic :: Utilities
Classifier: Topic :: System :: Shells
Classifier: Intended Audience :: Developers
Classifier: Environment :: Console
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: typer>=0.9.0
Requires-Dist: rich>=13.0.0
Requires-Dist: psutil>=5.9.0

# devkit-cli
13 changes: 13 additions & 0 deletions devkit_cli.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
README.md
pyproject.toml
devkit_cli/__init__.py
devkit_cli/cli.py
devkit_cli/file_rename.py
devkit_cli/info.py
devkit_cli/todo.py
devkit_cli.egg-info/PKG-INFO
devkit_cli.egg-info/SOURCES.txt
devkit_cli.egg-info/dependency_links.txt
devkit_cli.egg-info/entry_points.txt
devkit_cli.egg-info/requires.txt
devkit_cli.egg-info/top_level.txt
1 change: 1 addition & 0 deletions devkit_cli.egg-info/dependency_links.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

3 changes: 3 additions & 0 deletions devkit_cli.egg-info/entry_points.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[console_scripts]
devkit = devkit_cli.cli:app
devkit-cli = devkit_cli.cli:app
3 changes: 3 additions & 0 deletions devkit_cli.egg-info/requires.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
typer>=0.9.0
rich>=13.0.0
psutil>=5.9.0
1 change: 1 addition & 0 deletions devkit_cli.egg-info/top_level.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
devkit_cli
Empty file added devkit_cli/__init__.py
Empty file.
Binary file added devkit_cli/__pycache__/__init__.cpython-314.pyc
Binary file not shown.
Binary file added devkit_cli/__pycache__/cli.cpython-314.pyc
Binary file not shown.
Binary file not shown.
Binary file added devkit_cli/__pycache__/info.cpython-314.pyc
Binary file not shown.
Binary file added devkit_cli/__pycache__/todo.cpython-314.pyc
Binary file not shown.
66 changes: 66 additions & 0 deletions devkit_cli/cli.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
"""
devkit-cli - 开发者工具集命令行工具

功能模块:
1. info - 查看本机系统信息
2. file - 批量文件重命名
3. todo - 本地任务管理
"""

import typer
from rich.console import Console
from typing import Optional

# 初始化控制台
console = Console()
app = typer.Typer(
name="devkit-cli",
help="开发者工具集命令行工具",
add_completion=False,
rich_markup_mode="rich",
)

# 导入子命令模块
from .info import info_app
from .file_rename import file_app
from .todo import todo_app

# 注册子命令
app.add_typer(info_app, name="info", help="📊 查看本机系统信息")
app.add_typer(file_app, name="file", help="📁 批量文件重命名")
app.add_typer(todo_app, name="todo", help="✅ 本地任务管理")

# 版本信息
__version__ = "1.0.0"

def version_callback(value: bool) -> None:
"""显示版本信息"""
if value:
console.print(f"[bold green]devkit-cli[/bold green] version: [cyan]{__version__}[/cyan]")
raise typer.Exit()

@app.callback(invoke_without_command=True)
def main(
ctx: typer.Context,
version: Optional[bool] = typer.Option(
None, "--version", "-v", callback=version_callback, is_eager=True, help="显示版本信息"
),
) -> None:
"""
[bold green]devkit-cli[/bold green] - 开发者工具集命令行工具

使用示例:
$ devkit-cli info
$ devkit-cli file rename --prefix test_
$ devkit-cli todo add "完成项目文档"
"""
if ctx.invoked_subcommand is None:
console.print("[bold yellow]⚠️ 请指定一个子命令[/bold yellow]")
console.print("使用 --help 查看帮助信息")
console.print("\n可用子命令:")
console.print(" [cyan]info[/cyan] 📊 查看本机系统信息")
console.print(" [cyan]file[/cyan] 📁 批量文件重命名")
console.print(" [cyan]todo[/cyan] ✅ 本地任务管理")

if __name__ == "__main__":
app()
Loading