Posted January 15, 2025 by esotericpig
The Ruby script is butload.rb on my GitHub Gist page.
For the latest version of EkoScape (v2.1), I switched to using itch.ioβs butler CLI tool for publishing my games.
For developers, this means a smaller upload size for new versions. For users of the itch app, this means a smaller download size for new versions.
(It also allows developers to include a pretty cool manifest file for specifying other actions for users.)
Unfortunately, working with multiple channels/builds can be kind of tedious. I think most developers make their own internal script for this.
I decided to modify mine to make it generic and share it with the community.
Youβll need Ruby installed. After that, modify the constant USER_GAME
(username/game_name
) and the array ARTIFACTS
at the top of the file appropriately.
Example usage:
# Use `-n` to only perform a dry-run.
# Use `-c <channel>` to filter which channels to use
# (fuzzy search).
# - You can specify `-c <channel>` multiple times.
# Validate all folders for itch.io.
./butload.rb -v
# Validate the folder of channel macOS
# (contains "mac") for itch.io.
./butload.rb -v -c mac
# Do a dry-run of pushing all folders to itch.io.
./butload.rb -p -n
# Push all folders to itch.io.
./butload.rb -p
# Push the folders of channels Linux & Windows to itch.io
./butload.rb -p -c lin -c win
# Check status of all builds on itch.io.
./butload.rb -s
# Check status of Linux & macOS builds on itch.io.
./butload.rb -s -c lin -c mac