WEM: Wine Environment Manager

Latest release: ...

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.

You may also use wem get-list to see all available curated envs. The wem get-view $EnvSlug command will show you detailed information for the given env in your terminal (this is the same information presented on the env web page).

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:

Please see the wem-env-repo repository for several live examples. This repo also includes a test.py script that will validate envs for you.

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.