71 lines
2.1 KiB
Cheetah
71 lines
2.1 KiB
Cheetah
class __CLASS_NAME__ < Formula
|
|
desc "DingTalk Workspace CLI"
|
|
homepage "https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli"
|
|
url "__ARCHIVE_URL__"
|
|
sha256 "__ARCHIVE_SHA256__"
|
|
license "Apache-2.0"
|
|
__KEG_ONLY_LINE__
|
|
|
|
resource "skills" do
|
|
url "__SKILLS_URL__"
|
|
sha256 "__SKILLS_SHA256__"
|
|
end
|
|
|
|
def install
|
|
require "fileutils"
|
|
|
|
root = Dir["dws-*"].find { |entry| File.directory?(entry) } || "."
|
|
binary = File.join(root, "dws")
|
|
raise "binary not found: #{binary}" unless File.exist?(binary)
|
|
|
|
bin.install binary => "dws"
|
|
|
|
%w[LICENSE NOTICE README.md CHANGELOG.md].each do |name|
|
|
source = File.join(root, name)
|
|
pkgshare.install source if File.exist?(source)
|
|
end
|
|
|
|
skill_dest = pkgshare/"skills/dws"
|
|
skill_dest.mkpath
|
|
resource("skills").stage do
|
|
FileUtils.cp_r(Dir["*"], skill_dest)
|
|
end
|
|
end
|
|
|
|
def post_install
|
|
require "fileutils"
|
|
|
|
skill_root = pkgshare/"skills/dws"
|
|
entries = Dir["#{skill_root}/*"]
|
|
return if entries.empty?
|
|
|
|
targets = [
|
|
Pathname.new(File.join(Dir.home, ".agents/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".claude/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".cursor/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".gemini/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".codex/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".github/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".windsurf/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".augment/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".cline/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".amp/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".kiro/skills/dws")),
|
|
Pathname.new(File.join(Dir.home, ".trae/skills/dws")),
|
|
]
|
|
|
|
targets.each_with_index do |dest, index|
|
|
parent_gate = dest.parent.parent
|
|
next if index > 0 && !parent_gate.directory?
|
|
|
|
FileUtils.rm_rf(dest)
|
|
FileUtils.mkdir_p(dest)
|
|
FileUtils.cp_r(entries, dest)
|
|
end
|
|
end
|
|
|
|
test do
|
|
assert_match "dws", shell_output("#{bin}/dws --help")
|
|
end
|
|
end
|