Docs

Introduction

Clawdrop is the official CLI (Command Line Interface) for Raccreative Games.

It will let you upload builds of your games and create game posts (like patch notes) in the blink of an eye!

Clawdrop is made in Rust Language and is open source (MIT):

In this guide you will find out how to install and use Clawdrop, and a detailed list of commands and what they do.


Installation

To install clawdrop, simply download the latest version for your system under repo releases

Clawdrop is available on Windows, Mac and Linux. You can manually update once installed using clawdrop upgrade

PATH Configuration

In order to use clawdrop from any terminal and folder, you can add the clawdrop route to PATH environment. Otherwise, you will need to run clawdrop like: my/path/clawdrop [command]

Windows:

In order to add PATH clawdrop to Windows, you must add the current path of your clawdrop.exe to PATH, you can check where your clawdrop.exe is running the command clawdrop whereis

You can follow this tutorial to add PATH on Windows.

Linux

In Linux, you should simply move clawdrop to /usr/local/bin, as that directory is PATH default:
tar -xvzf clawdrop-x86_64-unknown-linux-gnu.tar.gz
sudo mv clawdrop /usr/local/bin/


Mac

Similar to Linux, after you decompress, simply move clawdrop to /usr/local/bin:
sudo mv clawdrop /usr/local/bin/

Checking everything is okay

Once installed, you can run clawdrop help to view all available commands and check that it works correctly.

Note: you can run clawdrop whereis to print where the executable is on your system.


Updates

Clawdrop can be updated manually using two methods:
  • Simply downloading a new version from the downloads page and ovewriting the old file
  • Using clawdrop upgrade and update directly via command
The second method provides a faster and easier way to update Clawdrop. Beside that, Clawdrop will automatically check for updates each time you run an important command, notifying the user.


Authentication

In order to use most of the commands, you will need to grant clawdrop access to your Raccreative Games account. To do this, just run clawdrop auth, this command will open a new url where you will be able to generate a new API Key and grant access. Clawdrop auth browser window

You will be able to manage your API Keys under user advanced settings.

If your Clawdrop CLI is not authorized, it will print an error everytime you try to run a command that needs authorization.

Once this step is done, the API Key will be saved locally until it expires or manually removed using clawdrop logout

You can use --key flag to specify an existing API Key when running the auth command, instead of generating a new one.


Setting up a target game

Clawdrop offers the possibility to set an active target game, so every command runs over that game.

To set a target game, simply use clawdrop set [game-id or game-url-slug]

If you don't know the id or slug of your game, you can use clawdrop list to show a list of all the games you are authorized to upload builds, there you will see the ID and more useful data about the game.

Clawdrop list view You can remove the target game running clawdrop unset

If you don't want to set a target game, you can simply specify the ID of the game each time you run a command using the --id flag.


Uploading builds

The main command for clawdrop that will be used to upload builds is: clawdrop push

syntax:

You have multiple ways to use clawdrop push, but there is a shorthand for quick use:
clawdrop push id:os/exe:version
  • id: The id of the game you want to push. Optional if you have a game already set as active target. (If you don't know the id of your game, you can use clawdrop list for a list of your games and info)
  • os: The operating system of the game you are uploading. Values are "windows", "linux", "mac" or "html"
  • exe: The name of the executable file of the game, needed to build the manifest.json. Example "game.exe"
  • version: The new version of the build you are uploading, example: 1.2.0. Optional, it will automatically bump configured target game version if exists (you can prevent this using --no-bump flag). If no version specified it will be set as 0.0.1.
Full example: clawdrop push 42:windows/myGame.exe:1.5.4

Beside that, you can omit the shorthand and use common parameters alternative using --id, --os, --version and --exe.

To specify the path of the build you can use --path, it will use the current folder if no path specified.

You can upload freshly new builds to any system if no one exists (example upload first linux version) Clawdrop upload exampleWhat does it do:

Clawdrop will by default upload only files that changed or are new, and delete those that are obsolete in new versions. In other words, it will create a differential upload.

For now, it uploads only the new files and the ones that changed, but uploads them completely, no delta patching is available yet, but we will implement it too in the future with another open source repo!

If you simply want to upload everything, you can use --force flag, this will upload all contents withing the current folder or specified path, except --ignore files that will be explained below.

ignoring files:

You can use the --ignore flag to specify files that won't be uploaded and will be ignored within the whole progress.

Example --ignore '.json' this will ignore all json files that are in the folder.

You can also ignore folders the same way using --ignore 'folder/'


Creating game posts

Game post are able to be created using clawdrop. This could be useful if you plan to generate patch notes for your fans o some announcements, and automate them after a build push.

The command example is clawdrop post --id 42 --title 'Patch notes 1.0.3' --body 'body text or ./body.txt' --cover './image.png' --slug 'patch-notes-1-0-3'

  • id: Id of the game, if you don't know the ID of your game, you can use clawdrop list to show a list of your authorized games
  • title: The title of the post
  • body: The text of the post, can be specified in plain text or as route for text file
  • cover: The cover image of the post (optional), must be a route for image file
  • slug: The url slug for the post (optional)
This will create a new post that will be immediately visible for everyone


Doctor

Doctor is a small command that will do an environment diagnostic checking: clawdrop doctor
  • Internet conection is OK
  • User is authorized
  • Has write permissions
  • If there is a target game or not
It can be used as pipeline security, as it will fail and exit process if some error is thrown related to internet connection, authorization or write permissions. Clawdrop doctor example