lehome-cli 0.2.2__tar.gz
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.
- lehome_cli-0.2.2/PKG-INFO +101 -0
- lehome_cli-0.2.2/README.md +93 -0
- lehome_cli-0.2.2/bootstrap.sh +27 -0
- lehome_cli-0.2.2/pyproject.toml +37 -0
- lehome_cli-0.2.2/src/lehome_cli/__init__.py +3 -0
- lehome_cli-0.2.2/src/lehome_cli/__main__.py +5 -0
- lehome_cli-0.2.2/src/lehome_cli/bundle/__init__.py +1 -0
- lehome_cli-0.2.2/src/lehome_cli/bundle/all.sh +3226 -0
- lehome_cli-0.2.2/src/lehome_cli/bundle/manifest.json +56 -0
- lehome_cli-0.2.2/src/lehome_cli/bundle/v1/step1.sh +81 -0
- lehome_cli-0.2.2/src/lehome_cli/bundle/v1/step2.sh +61 -0
- lehome_cli-0.2.2/src/lehome_cli/bundle/v1/step3.sh +107 -0
- lehome_cli-0.2.2/src/lehome_cli/bundle/v1/step_ai.sh +90 -0
- lehome_cli-0.2.2/src/lehome_cli/bundle/v1/step_diff.sh +44 -0
- lehome_cli-0.2.2/src/lehome_cli/bundle/v1/step_git.sh +78 -0
- lehome_cli-0.2.2/src/lehome_cli/bundle/v1/step_vpn.sh +112 -0
- lehome_cli-0.2.2/src/lehome_cli/cli.py +79 -0
- lehome_cli-0.2.2/src/lehome_cli/commands.py +88 -0
- lehome_cli-0.2.2/src/lehome_cli/doctor.py +83 -0
- lehome_cli-0.2.2/src/lehome_cli/menu.py +69 -0
- lehome_cli-0.2.2/src/lehome_cli/runtime.py +170 -0
- lehome_cli-0.2.2/tools/import_runtime.py +109 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: lehome-cli
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: LeHome Challenge CLI distributed via uv tool run
|
|
5
|
+
Project-URL: Repository, https://github.com/sudo-yf/lehome
|
|
6
|
+
Requires-Python: >=3.9
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
|
|
9
|
+
# LeHome CLI
|
|
10
|
+
|
|
11
|
+
`lehome` 是一个面向 LeHome Challenge 的可分发 uv CLI。
|
|
12
|
+
|
|
13
|
+
它把 `/root/data/lehome_cli` 里的源脚本打包成 runtime bundle,在目标机器上自动解包到稳定目录,再提供:
|
|
14
|
+
|
|
15
|
+
- 一个超级菜单入口
|
|
16
|
+
- 原版 `all.sh` 的直达入口
|
|
17
|
+
- `step1 / step2 / step3 / ai / git / diff / vpn` 这些老脚本的直达入口
|
|
18
|
+
|
|
19
|
+
## 用户用法
|
|
20
|
+
|
|
21
|
+
推荐直接运行:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
uvx lehome-cli
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
如果你想在 PyPI 发布前先从 GitHub 直接跑:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
uvx --from git+https://github.com/sudo-yf/lehome.git lehome
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
常用命令:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
uvx lehome-cli --help
|
|
37
|
+
uvx lehome-cli all --list
|
|
38
|
+
uvx lehome-cli step1
|
|
39
|
+
uvx lehome-cli step2
|
|
40
|
+
uvx lehome-cli step3
|
|
41
|
+
uvx lehome-cli ai
|
|
42
|
+
uvx lehome-cli git 1
|
|
43
|
+
uvx lehome-cli diff
|
|
44
|
+
uvx lehome-cli vpn
|
|
45
|
+
uvx lehome-cli doctor
|
|
46
|
+
uvx lehome-cli version
|
|
47
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome --help
|
|
48
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome all --list
|
|
49
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome step1
|
|
50
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome step2
|
|
51
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome step3
|
|
52
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome ai
|
|
53
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome git 1
|
|
54
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome diff
|
|
55
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome vpn
|
|
56
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome doctor
|
|
57
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome version
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
如果你已经在本地 clone 了仓库,也可以这样调试:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
uv tool run --from . lehome
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 环境变量
|
|
67
|
+
|
|
68
|
+
默认值:
|
|
69
|
+
|
|
70
|
+
- `DATA_ROOT=/root/data`
|
|
71
|
+
- `LEHOME_REPO_URL=https://github.com/sudo-yf/lehome-challenge.git`
|
|
72
|
+
- `LEHOME_DEFAULT_DIRNAME=lehome-challenge`
|
|
73
|
+
|
|
74
|
+
示例:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
DATA_ROOT=/tmp/lehome-data \
|
|
78
|
+
LEHOME_REPO_URL=https://github.com/sudo-yf/lehome-challenge.git \
|
|
79
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome doctor
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## 维护说明
|
|
83
|
+
|
|
84
|
+
`/root/data/lehome_cli` 是源真相,`/root/data/lehome` 是分发仓库。
|
|
85
|
+
|
|
86
|
+
当源脚本更新后,在本仓库运行:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
python tools/import_runtime.py --source /root/data/lehome_cli
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
这个脚本会:
|
|
93
|
+
|
|
94
|
+
- 校验源文件存在
|
|
95
|
+
- 复制到 `src/lehome_cli/bundle/`
|
|
96
|
+
- 生成 `manifest.json`
|
|
97
|
+
|
|
98
|
+
平台约束:
|
|
99
|
+
|
|
100
|
+
- 仅支持 Linux / Ubuntu / bash
|
|
101
|
+
- 不承诺 Windows / macOS 可用
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# LeHome CLI
|
|
2
|
+
|
|
3
|
+
`lehome` 是一个面向 LeHome Challenge 的可分发 uv CLI。
|
|
4
|
+
|
|
5
|
+
它把 `/root/data/lehome_cli` 里的源脚本打包成 runtime bundle,在目标机器上自动解包到稳定目录,再提供:
|
|
6
|
+
|
|
7
|
+
- 一个超级菜单入口
|
|
8
|
+
- 原版 `all.sh` 的直达入口
|
|
9
|
+
- `step1 / step2 / step3 / ai / git / diff / vpn` 这些老脚本的直达入口
|
|
10
|
+
|
|
11
|
+
## 用户用法
|
|
12
|
+
|
|
13
|
+
推荐直接运行:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
uvx lehome-cli
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
如果你想在 PyPI 发布前先从 GitHub 直接跑:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uvx --from git+https://github.com/sudo-yf/lehome.git lehome
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
常用命令:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
uvx lehome-cli --help
|
|
29
|
+
uvx lehome-cli all --list
|
|
30
|
+
uvx lehome-cli step1
|
|
31
|
+
uvx lehome-cli step2
|
|
32
|
+
uvx lehome-cli step3
|
|
33
|
+
uvx lehome-cli ai
|
|
34
|
+
uvx lehome-cli git 1
|
|
35
|
+
uvx lehome-cli diff
|
|
36
|
+
uvx lehome-cli vpn
|
|
37
|
+
uvx lehome-cli doctor
|
|
38
|
+
uvx lehome-cli version
|
|
39
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome --help
|
|
40
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome all --list
|
|
41
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome step1
|
|
42
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome step2
|
|
43
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome step3
|
|
44
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome ai
|
|
45
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome git 1
|
|
46
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome diff
|
|
47
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome vpn
|
|
48
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome doctor
|
|
49
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome version
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
如果你已经在本地 clone 了仓库,也可以这样调试:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
uv tool run --from . lehome
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## 环境变量
|
|
59
|
+
|
|
60
|
+
默认值:
|
|
61
|
+
|
|
62
|
+
- `DATA_ROOT=/root/data`
|
|
63
|
+
- `LEHOME_REPO_URL=https://github.com/sudo-yf/lehome-challenge.git`
|
|
64
|
+
- `LEHOME_DEFAULT_DIRNAME=lehome-challenge`
|
|
65
|
+
|
|
66
|
+
示例:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
DATA_ROOT=/tmp/lehome-data \
|
|
70
|
+
LEHOME_REPO_URL=https://github.com/sudo-yf/lehome-challenge.git \
|
|
71
|
+
uv tool run --from git+https://github.com/sudo-yf/lehome.git lehome doctor
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## 维护说明
|
|
75
|
+
|
|
76
|
+
`/root/data/lehome_cli` 是源真相,`/root/data/lehome` 是分发仓库。
|
|
77
|
+
|
|
78
|
+
当源脚本更新后,在本仓库运行:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
python tools/import_runtime.py --source /root/data/lehome_cli
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
这个脚本会:
|
|
85
|
+
|
|
86
|
+
- 校验源文件存在
|
|
87
|
+
- 复制到 `src/lehome_cli/bundle/`
|
|
88
|
+
- 生成 `manifest.json`
|
|
89
|
+
|
|
90
|
+
平台约束:
|
|
91
|
+
|
|
92
|
+
- 仅支持 Linux / Ubuntu / bash
|
|
93
|
+
- 不承诺 Windows / macOS 可用
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -Eeuo pipefail
|
|
3
|
+
|
|
4
|
+
DATA_ROOT="${DATA_ROOT:-/root/data}"
|
|
5
|
+
LEHOME_CLI_REPO_URL="${LEHOME_CLI_REPO_URL:-https://github.com/sudo-yf/lehome.git}"
|
|
6
|
+
TARGET_DIR="${TARGET_DIR:-$DATA_ROOT/lehome}"
|
|
7
|
+
|
|
8
|
+
mkdir -p "$DATA_ROOT"
|
|
9
|
+
|
|
10
|
+
if [[ -d "$TARGET_DIR/.git" ]]; then
|
|
11
|
+
echo ">>> 检测到已有 LeHome CLI 仓库,正在更新..."
|
|
12
|
+
git -C "$TARGET_DIR" fetch origin
|
|
13
|
+
git -C "$TARGET_DIR" pull --ff-only origin main
|
|
14
|
+
else
|
|
15
|
+
echo ">>> 正在拉取 LeHome CLI 仓库..."
|
|
16
|
+
git clone "$LEHOME_CLI_REPO_URL" "$TARGET_DIR"
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH"
|
|
20
|
+
if ! command -v uv >/dev/null 2>&1; then
|
|
21
|
+
echo ">>> 未检测到 uv,正在安装..."
|
|
22
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
23
|
+
export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH"
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
echo ">>> 正在通过 uv 启动 LeHome CLI..."
|
|
27
|
+
exec uv tool run --refresh --from "$TARGET_DIR" lehome "$@"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling>=1.27.0"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "lehome-cli"
|
|
7
|
+
version = "0.2.2"
|
|
8
|
+
description = "LeHome Challenge CLI distributed via uv tool run"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
dependencies = []
|
|
12
|
+
|
|
13
|
+
[project.scripts]
|
|
14
|
+
lehome-cli = "lehome_cli.cli:main"
|
|
15
|
+
lehome = "lehome_cli.cli:main"
|
|
16
|
+
|
|
17
|
+
[project.urls]
|
|
18
|
+
Repository = "https://github.com/sudo-yf/lehome"
|
|
19
|
+
|
|
20
|
+
[tool.hatch.build.targets.wheel]
|
|
21
|
+
packages = ["src/lehome_cli"]
|
|
22
|
+
|
|
23
|
+
[tool.hatch.build.targets.sdist]
|
|
24
|
+
include = [
|
|
25
|
+
"/README.md",
|
|
26
|
+
"/bootstrap.sh",
|
|
27
|
+
"/pyproject.toml",
|
|
28
|
+
"/tools/import_runtime.py",
|
|
29
|
+
"/src/lehome_cli/__init__.py",
|
|
30
|
+
"/src/lehome_cli/__main__.py",
|
|
31
|
+
"/src/lehome_cli/cli.py",
|
|
32
|
+
"/src/lehome_cli/commands.py",
|
|
33
|
+
"/src/lehome_cli/doctor.py",
|
|
34
|
+
"/src/lehome_cli/menu.py",
|
|
35
|
+
"/src/lehome_cli/runtime.py",
|
|
36
|
+
"/src/lehome_cli/bundle",
|
|
37
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Runtime bundle imported from /root/data/lehome_cli."""
|