WEM: Wine Environment Manager

wem get

About

The wem get command allows downloading curated envs for certain games and software. The idea behind curated envs is to enable easy setup, configuration, and execution of a particular Windows software via wine.

Typically, all a user has to configure is the path to the installation media. After downloading the env via wem get, the user can install and run it using an optimal, well-tested setup with wem install/wem run.

Please see the main Get Envs page for more information about how to use it

Developing Curated Envs

Curated envs live in the wem-env-repo repository. They are TOML-formatted files that have WEM env config files embedded inside of them along with some extra metadata.

At minimum, a curated env file must contain the following metadata:

The embedded env must have at least the Name and WineExe options set. Please see the wem-env-repo repository for several live examples.

Building The Curated Env Repo Website

A curated env "repo" need only be some HTTP endpoint that has several files at minimum:

WEM has a subcommand that can generate all of these files: wem get-html

You can use it like this:

wem get-html  --from-files /path/to/repo --out /path/to/web/site/get

Where the --from-files argument points to a directory containing TOML-formatted curated envs, and the --out argument points to the directory where WEM should write all files for the "repo".

Local Repo Testing

To run a local copy of the WEM website for developing curated envs, follow the below steps:

  1. Clone the WEM repository using --recursing:
    git clone --recursive https://gitlab.com/hristoast/wem
  2. cd into the root of the cloned repository
  3. Open two terminals
  4. In the first, run: make clean-all rebuild web-all
    • This step requires: curl, make, pandoc, and python3
  5. In the second, run this to list available envs:
    go run ./cmd/wem get-list
  6. Also in the second, run this to get an env:
    go run ./cmd/wem get <env-slug-here> <optional args here>
  7. Once again in the second, run this to view an env:
    go run ./cmd/wem get-view <env-slug-here> <optional args here>
  8. If you make changes to any envs, re-run make web-all to see your changes

This patten is useful for developing and testing envs locally, before having them added into the main WEM get repository.