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:
-
Some kind of
WineExe
: either the system wine (wine
), Kron4ek, or umu-launcher -
Metadata/Name
-
Metadata/Description
-
Metadata/TestedOn
(every env should be tested on at least one distro) -
Metadata/Urls
(at the very least you should link to a store or project page for the env) -
Env/Date
-
Env/InstallExe
-
Env/InstallExpected
-
Env/Name
-
Env/RunExe
-
Env/RunWorkDir
-
Env/WineArch
-
Any
Urls
must begin withhttp://
orhttps://
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:
-
index.json
should contain a list of maps that haveName
andSlug
keys with their corresponding values. -
index.html
is technically optional, but is great for providing users a way to browse all available curated envs. -
TOML-formatted files for any curated envs that you wish to host. These files should correspond to the
index.json
file described above.
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:
-
Clone the WEM repository using
--recursing
:git clone --recursive https://gitlab.com/hristoast/wem
-
cd
into the root of the cloned repository - Open two terminals
-
In the first, run:
make clean-all rebuild web-all
-
This step requires:
curl
,make
,pandoc
, andpython3
-
This step requires:
-
In the second, run this to list available envs:
go run ./cmd/wem get-list
-
Also in the second, run this to get an env:
go run ./cmd/wem get <env-slug-here> <optional args here>
-
Once again in the second, run this to view an env:
go run ./cmd/wem get-view <env-slug-here> <optional args here>
-
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.