Git Product home page Git Product logo

tcli-rust's Introduction

thunderstore-cli

codecov

Thunderstore CLI (just "TCLI" from here on) is a command line tool for building and uploading mod packages to Thunderstore mod database, and installing mods via the command line.

Installation

If all you're interested in is the package building/publishing capabilities of TCLI, then you can simply do:

dotnet tool install -g tcli

In your command line of choice, which will install the tool via NuGet. This version doesn't come with the mod installation functionality however.

Otherwise, just download the latest release from here and extract the ZIP wherever you'll be using TCLI.

Usage

For building packages, see the wiki.

For managing mods via TCLI, see the next section.

Mod Management

Installation

TCLI will automatically download and install mods in the correct format for you, and will run the game with whatever arguments your mod loader requires.

For all of these commands, tcli.exe can be swapped for ./tcli on Linux. Everything else should be the same.

To get started, import your game from the Thunderstore API using:

tcli.exe import-game {game identifier, e.g. ror2 or valheim}

To run the game from a specific file instead of say, through Steam (you probably want this for servers!) use --exepath {path/to/server/launcher.exe}. Passing in a script file also works fine.

To install mods, use the command:

tcli.exe install {game identifier} {namespace-modname(-version)}

You can also add --profile ProfileName to set a custom name for the profile. By default it uses the name DefaultProfile.

Mod uninstalls are done in a similar fashion:

tcli.exe uninstall {game identifier} {namespace-modname}

And running the game is done with:

tcli.exe run {game identifier}

The --profile snippet from above still applies to both of those commands.

If you want to run the game with a specific set of arguments, you can use --args "--flag parameter1 parameter2"

The installed mods by default will go into %APPDATA%\ThunderstoreCLI on Windows and ~/.config/ThunderstoreCLI on Linux. This is configurable by using --tcli-directory with any command.

The ThunderstoreCLI directory will contain a file called GameDefintions.json, which contains metadata about the configured games, the profiles for each game, and a copy of the manifests of each installed mod. You shouldn't normally be editing this manually.

The same directory also contains a cache for mod ZIPS named ModCache, the actual profile files in a folder called Profiles, and a caches for the API responses from the Thunderstore API for packages.

All in all, the structure is very similar to that of TMM/r2mm, but on the command line!

Contributing

pre-commit

This project uses Pre-commit to enforce code style practices. In addition to having .NET and pre-commit installed locally, you'll need dotnet-format, which can be installed with:

dotnet tool install -g dotnet-format

Versioning

This project uses Semantic Versioning. Versioning is handled with MinVer via Git tags.

  • To create a new pre-release, use alpha suffix, e.g. git tag 0.1.0-alpha.1
  • Any subsequent commits will automatically be versioned "0.1.0-alpha.1.1", where the last number denotes the number of commits since the last version tag (a.k.a. "height")
  • To create a new release, use e.g. git tag 0.1.0
  • Any subsequent commits will automatically be versioned "0.1.1-alpha.0.1"
  • Remember to push the tags to GitHub, e.g. git push origin 0.1.0

tcli-rust's People

Contributors

windows10ce avatar anttimaki avatar ethangreen-dev avatar mythicmaniac avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.