Skip to content

🧰 ComposerUtils

pkg/composerutils 是 Composer Skills 的基础工具集,提供文件系统操作、HTTP 下载、Mock 接口与测试辅助。它被 pkg/composerpkg/installer 等模块复用,也可独立使用。

子模块

子模块包路径说明
📁 文件系统pkg/composerutils (fs.go)写权限检查、目录创建、文件写入
🌐 HTTP 下载pkg/composerutils (http.go)带代理/超时的文件下载
🎭 Mock 接口pkg/composerutils/mock命令执行、文件系统、下载、运行时的 Mock
🧪 测试辅助pkg/composerutils (test_utils.go)临时目录、文件断言

快速示例

go
package main

import (
	"fmt"
	"github.com/scagogogo/composer-skills/pkg/composerutils"
)

func main() {
	dir := "/tmp/my-app"

	// 确保目录存在
	if err := composerutils.EnsureDirectoryExists(dir); err != nil {
		panic(err)
	}

	// 检查写权限
	if err := composerutils.CheckWritePermission(dir); err != nil {
		fmt.Printf("无写权限: %v\n", err)
	}

	// 写入文件
	content := []byte(`{"name": "my/project"}`)
	_ = composerutils.CreateFileWithContent(dir+"/composer.json", content, 0644)
}

设计目标

  • 薄而可靠:只封装最常用的系统操作,避免重复造轮子。
  • 可测试:通过 mock 子包提供接口化的 Mock,便于上层模块单元测试。
  • 跨平台:基于标准库 os/net/http,天然跨平台。

详见各子文档:文件系统 · HTTP 下载 · Mock 接口 · 测试辅助

基于 MIT 许可证发布