1 个不稳定版本

0.1.0 2020年6月21日

#5 in #workshop

MIT 许可证

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