z_mirror/fmm

git clone https://git.raiguard.me/z_mirror/fmm

Caleb HeuerAllow specifying mods path separately from game path344cd05

updating
1.9 KiB67 linesraw

fmm

A CLI mod manager for Factorio. Easily download and enable mods, sync with save files or log file checksums, and upload mod zip files to the portal.

Installation

Grab the latest release from the releases page.

Distribution packages will be available once the project is stable.

Building

Requirements:

  • Go 1.21 or newer
make

Run tests:

make test

Usage

usage: fmm <command> [args...]
commands:
	add     [args...]   Download and enable the given mods and their dependencies
	disable [args...]   Disable the given mods, or all mods if none are given
	enable  [args...]   Enable the given mods and their dependencies
	help                Show usage information
	list    [files...]  List all mods in the mods directory, or in the given save files
	sync    [args...]   Disable all mods, then download and enable the given mods and their dependencies
	upload  [files...]  Upload the given mod zip files to the mod portal

Mods are specified by name or name_version.

Configuration

fmm will check the current directory and the previous directory for a Factorio installation. If neither is valid, it will fall back to the directory specified by the FACTORIO_PATH environment variable.

If the mods directory is not contained within the game data directory (i.e. you installed via Steam), specify the FACTORIO_MODS_PATH environment variable to point fmm to the correct mods directory.

For uploading mods, specify your API key with the FACTORIO_API_KEY variable.

If you have logged in to your Factorio account, fmm will automatically pull your username and token from the player-data.json file. Alternatively, you can specify them with FACTORIO_USERNAME and FACTORIO_TOKEN respectively.

TODO

Not necessarily in order.

  • Mod settings (blocked on PropertyTree)
  • Mod updating
  • Man pages
  • Mod creation and packaging
  • Automated testing CI
1# fmm
2
3A CLI mod manager for Factorio. Easily download and enable mods, sync with save
4files or log file checksums, and upload mod zip files to the portal.
5
6## Installation
7
8Grab the latest release from the [releases page](https://github.com/raiguard/fmm/releases).
9
10Distribution packages will be available once the project is stable.
11
12## Building
13
14**Requirements:**
15- [Go](https://go.dev) 1.21 or newer
16
17```
18make
19```
20
21Run tests:
22
23```
24make test
25```
26
27## Usage
28
29```
30usage: fmm <command> [args...]
31commands:
32	add     [args...]   Download and enable the given mods and their dependencies
33	disable [args...]   Disable the given mods, or all mods if none are given
34	enable  [args...]   Enable the given mods and their dependencies
35	help                Show usage information
36	list    [files...]  List all mods in the mods directory, or in the given save files
37	sync    [args...]   Disable all mods, then download and enable the given mods and their dependencies
38	upload  [files...]  Upload the given mod zip files to the mod portal
39```
40
41Mods are specified by `name` or `name_version`.
42
43## Configuration
44
45fmm will check the current directory and the previous directory for a Factorio
46installation. If neither is valid, it will fall back to the directory specified
47by the `FACTORIO_PATH` environment variable.
48
49If the mods directory is not contained within the game data directory (i.e. you
50installed via Steam), specify the `FACTORIO_MODS_PATH` environment variable to
51point fmm to the correct mods directory.
52
53For uploading mods, specify your API key with the `FACTORIO_API_KEY` variable.
54
55If you have logged in to your Factorio account, fmm will automatically pull
56your username and token from the `player-data.json` file. Alternatively, you
57can specify them with `FACTORIO_USERNAME` and `FACTORIO_TOKEN` respectively.
58
59## TODO
60
61Not necessarily in order.
62
63- Mod settings (blocked on PropertyTree)
64- Mod updating
65- Man pages
66- Mod creation and packaging
67- Automated testing CI