Pactorio

Mod packager for Factorio
Installation

The latest precompiled binaries are available on github.
Alternatively you can install pactorio from crates.io with cargo.
sh
cargo install pactorio
Building from source
sh
cargo build --release
Usage
sh
pactorio [FLAGS] [OPTIONS]
option | description
-|-
-c, --compact | Output info.json compactly
-z, --zip | Output a zip file instead
--compression \ | Specify the compression method, ignored without the -z/--zip
flag
default: stored
possible values: stored, bzip2, deflate, zstd
-d, --dir \ | Set working directory
-i, --input \ | Specify the config file to use
default: pactorio.toml
-o, --output \ | Specify the output directory
default: release
-u, --upload [\] | Upload to mod portal
Requires an API key, which can be created on https://factorio.com/profile
-h, --help | Prints help information (use -h
for a summary)
-V, --version | Prints version information
Configuration
By default, pactorio uses pactorio.toml
as its config file.
It is similar to the info.json
file and uses TOML syntax.
Here is an example of a pactorio config file.
```toml
Information about your package, similar to info.json
https://wiki.factorio.com/Tutorial:Mod_structure#info.json
[package]
Mandatory, internal name of your mod
name = "example_mod"
Mandatory, version of your mod, "main.major.minor"
version = "0.1.0"
Mandatory, display name of your mod
title = "Example mod"
Mandatory, author of your mod, You
author = "You"
Optional, for example your email address
contact = "you@example.com"
Optional, link to the homepage of your mod
homepage = "https://you.example.com"
Optional, short description of your mod
description = "Example mod. Does something and some other things. "
Optional, default: "0.12", usually needs to be added
factorio_version = "1.0"
Dependencies are separated into four parts, All four of them are optional
They are under a table named "deps", you can also use "dependencies"
Required dependencies
[deps.required]
Same as "base >= 1.0" in info.json
base = ">= 1.0"
Conflict or incompatible dependencies
[deps.conflict] # or [deps.incompatible]
Same as "! bad_mod" in info.json
bad_mod = ""
Same as "! incomp < 3" in info.json
incomp = "< 3"
Optional dependencies
[deps.optional]
Same as "opt_dep = 0.2.1" in info.json
opt_dep = "= 0.2.1"
Hidden optional dependencies
[deps.hidden]
Same as "hidden_dep > 2.0" in info.json
hidden_dep = "> 2.0"
Optional, source directory
[source]
Pactorio will use all the files under this directory
Optional, default: "src"
dir = "src"
A list of glob patterns to represent the files to include
Relative to your source directory
Optional, default: ["/"]
include = ["/"]
A list of glob patterns to represent the files to ignore
Relative to your source directory
Optional, default: []
ignore = []
```
Changelog
See CHANGELOG.md