Skip to content

rbqgroup/golang-ipa-renamer-watch

Repository files navigation

golang-ipa-renamer-watch

一个跨平台 Go 工具,自动监听目录下新增或变更的 IPA 文件并按固定规则重命名(原文件名@CFBundleIdentifier.ipa)。支持 Docker、GitHub Actions,可作为库或独立 watcher 使用。

功能特性

  • 目录监听,自动检测新增/变更 IPA 文件(基于 fsnotify
  • 自动解包 Info.plist 并用 howett.net/plist 解析
  • 命名规则固定为“原文件名@CFBundleIdentifier.ipa”
  • 跨平台:macOS、Linux、Windows、ARM/AMD64
  • 支持 Docker、Compose 一键部署
  • GitHub Actions 多平台镜像自动构建推送 GHCR
  • 附带 Rust 原型(rs/,已弃用)

快速开始

1. 本地构建运行

git clone https://github.com/KagurazakaIris/golang-ipa-renamer-watch.git
cd golang-ipa-renamer-watch
go build -o ipa-renamer main.go ipa_renamer.go
./ipa-renamer

2. Docker 运行

docker build -t ipa-renamer .
docker run -v $(pwd)/watched:/app/watched -v $(pwd)/output:/app/output ipa-renamer

3. Docker Compose 一键部署

docker-compose up -d

4. GHCR 拉取镜像

docker pull ghcr.io/kagurazakairis/golang-ipa-renamer-watch:latest
docker run -v $(pwd)/watched:/app/watched -v $(pwd)/output:/app/output ghcr.io/kagurazakairis/golang-ipa-renamer-watch:latest

配置参数

  • WATCH_DIR:监听目录(默认 /app/watched
  • OUTPUT_DIR:重命名输出目录(默认 /app/output
  • TEMP_DIR:解包 Info.plist 临时目录(默认 /app/temp
  • 命名规则已固定为“原文件名@CFBundleIdentifier.ipa”,无需配置 TEMPLATE

所有参数均可通过环境变量或 Docker Compose environment 字段配置。

目录结构

├── main.go              # 目录监听与自动重命名主程序
├── ipa_renamer.go       # IPA重命名核心逻辑,可复用为库
├── Dockerfile           # 多平台构建支持的Dockerfile
├── docker-compose.yml   # 一键部署示例
├── .github/workflows/ghcr-docker.yml # GHCR自动构建流水线
├── rs/                  # Rust原型实现(已弃用)
...

CI/CD

  • .github/workflows/ghcr-docker.yml:推送到 rewrite/master 分支自动多平台构建并推送到 GHCR
  • 支持 linux/amd64linux/arm64 并行构建

License

MIT License © 2025 神楽坂アイリス

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors