# Godot Web Easy Export (GWEE)

Aims to make it very easy to generate an html page with a playable build of Godot, containing downloads for other Godot builds (At the moment: Windows, Linux, OSX). 


Specifically, this package:

- compiles Godot 3 and Godot 4 projects
- packages exports in neat zips
- renders HTML using [Eta](https://eta.js.org/) before giving it to Godot. The Eta template receives a bunch of data that can be used, including:
  - The zips downloads list
  - Information about the project (name, date, last commit, branch, etc)
  - The rendered Readme page at the project's root, with YAML frontmatter
- uploads to itch

## How to Use -- Command Line

Assuming you have an alias to `node gwee.mjs`:

Get help:
```bash
gwee --help
```

Get help on a specific command:
```bash
gwee build --help
```

Use `gdquest`, the command that is tailored for GDQuest repos, and export the windows, linux, and web builds from the project `examples/g4`.
Passing `-b beta7` is necessary because there's no way to determine that a project was built with Godot 4 beta7.
It's not necessary to pass `stable`.
```bash
gwee gdquest examples/g4 -b beta7 -p x11,win,web
```
```bash
gwee gdquest examples/g3 -p x11,win,web
```

Same as above, but on a Godot 3 project, and using itch credentials (will automatically upload to itch)
```bash
ITCHIO_GAME=test \\
  ITCHIO_USER=xananax \\
  ITCHIO_API_KEY=oa5s9rf4gGUn3TAV2Kj5DR1sbr91244HC2o8nSO \\
  node %script% gdquest examples/g4 -b beta7 -p x11,win,web
```

You can use a `.env` file in your project root instead of passing environment variables.

## How to use -- Package

This package is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c)

There's no doc generation at the moment, but the methods are all commented.

## Supported Exports:

Working:

- Linux (`x11`)
- Web (`web`)
- Windows (`win`) (no `rcedit` support yet)

Untested:

- OSX (`osx`)


Not working:

- Android (`android`)
- UWP (`uwp`)
- IOS (`ios`)

## How to dev

The package is written in ES6 with extensive JSDoc. 
It's exhaustively typed, but requires no compilation step, you can just use it.

The (runtime) packages used have each no dependencies, so the dep tree is rather shallow.