1 个不稳定版本
0.1.0 | 2020年6月21日 |
---|
#5 in #workshop
32KB
696 行
steamws
Steam Workshop 工具集。使用 Steamworks,因此需要 Steam 运行才能正常工作。
包含以下内容
workshop
用于下载和检查 Workshop 项目gma
用于处理 Garry's Mod 扩展文件
# print metadata about workshop
workshop info 1512211167
# download workshop file to a file
workshop get 1512211167 > file.gma
# download + list file entries inside .gma
workshop get 1512211167 | gma list -
# download + unpack files inside .gma to folder "out" in working dir
workshop get 1512211167 | gma unpack - out
# unpack files matching given filter from .gma in working dir
# UNIMPLEMENTED: gma unpack myaddon.gma out "**.mdl"
# download + print contents of all files matching pattern
workshop get 1512211167 | gma cat - "**.lua"
# example usecase:
# very rough anti-backdoor script grepping for "http" in all files
workshop get 426998109 | gma cat - | grep http
# Get item, unpack to folder, update a file, repackage as gma, update to workshop
workshop get 2137434632 | gma unpack - out && echo `date` > out/date.txt && gma pack out | workshop update 2137434632 -
编译
使用 Steamworks SDK 编译,例如 STEAM_SDK_LOCATION=~/Downloads/steam_sdk cargo build
您可以在本地测试,使用 cargo run --bin workshop -- get 1512211167 | cargo run --bin gma -- list
对于一般用途,您可能需要安装二进制文件并将它们放在 PATH 中。为此,您可以使用 STEAM_SDK_LOCATION=~/Downloads/steam_sdk cargo install --path .
如果您在 OS X 上遇到有趣的错误(例如 dyld: Library not loaded: @loader_path/libsteam_api.dylib
),请尝试将动态库文件(dylib、so、dll)从 steam_sdk/redistributable_bin/<os>/
移动到二进制文件安装的位置。
关于 app_id 的说明
如果您在没有后台运行游戏的情况下运行任何 Workshop 命令,Steam 将无法确定 app_id,二进制文件将崩溃。
您可以通过在工作目录中创建 steam_appid.txt
文件或在环境变量 SteamAppId
中设置应用ID来修复这个问题。workshop
二进制文件提供了 -a <id>
选项来临时创建具有给定ID的文件,并且在命令执行完毕之前会尽力清理文件。
依赖项
~26–40MB
~511K SLoC