fmm 0.3.0

Manage your Factorio mods.
# Factorio Mod Manager

`fmm` is a basic CLI Factorio mod manager. Is is completely portable and runs on all major platforms.

## Getting started

## Installing

Download the binary for your system from the [releases](https://github.com/raiguard/fmm/releases) page and place it on your `PATH`.

Coming soon: an AUR package.

## Building

Requires [Rust](https://rust-lang.org) nightly.

```
git clone https://github.com/raiguard/fmm & cd fmm
cargo build
```

### Installing to `PATH`

You can build `fmm` from source and install it on your `PATH` like this:

```
cargo install --locked --force --path .
```

Or just run this without cloning the repository:

```
cargo install fmm
```

## Usage

```
fmm --enable space-exploration
```

See `fmm --help` for all subcommands.

## Features

- Enable mods and their dependencies
- Disable mods
- Enable or disable all mods at once
- Enable pre-defined sets of mods
- Set your default directory by using a config file
- Remove mods from your mods directory

## Configuration

`fmm` accepts a `--config` flag with a path to a [`toml`](https://toml.io/en/) configuration file. If `--config` is not provided, `fmm` will look for this file in `$XDG_CONFIG_HOME/fmm/fmm.toml` and source it if it exists.

```toml
# The path to the Factorio mods directory
directory = "/home/rai/.factorio/mods/"

# Customizable mod sets
# Each key will be available for use in the `--enable-set` flag
# Dependencies will automatically be enabled
# Specific versions may be specified by appending `@version` to the mod name
[sets]
EditorExtensions = ["EditorExtensions", "Sandbox"]
Krastorio2Beta = ["Krastorio2@1.2.0", "EditorExtensions", "Sandbox"]
```

## Roadmap

Roughly in this order:

- Sync with `mod-list.json`
- Sync with save
- Automatically publish to AUR
- Create new mod
- Package mod
- Datestamp and increment mod version
- Download mods
- Upload mods