[!IMPORTANT]
This program is still a work in progress. Nothing has been fully implemented or tested yet. Come back at a later date!
Features
- For designing your folder structures Reamake features its own scripting language with support for custom variables, striking a balance between flexibility and ease-of-use.
- Subcommands for normalizing, correcting and sorting raw audio stems in record-time (not implemented yet).
Install
Usage
CLI
Generate initialized reamake template file
(without target dir, current directory is assumed):
reamake init <target dir>
Generate folder structure from template file
(without target dir, current directory is assumed):
reamake -f <reamake template file> <target dir>
In your reamake template file you can set variables such as client name,
project name and service name. If you'd like to override one or more of
these fields you can do so through the cli:
reamake ... -c <client name override>
reamake ... -p <project name override>
reamake ... -s <service name override>
Display help and version information:
reamake help
Template file (.reamake)
The core workflow of Reamake is feeding the CLI with reamake template files. A reamake file (file with the .reamake extension) is divided up into four sections: variables, sources, settings and hierarchy. This template format accepts comments (prefixed with '#'), but comment lines should be separate from the parameter lines since doing otherwise could lead to undefined behaviour.
Section - variables
In this section you can set variables for the names of the folder hierarchy. These can be set in the template or the CLI - my advice is that you keep fallback values here and override them explicitly in the CLI!
Section - sources
Here you will set which RPP file you want to use as your project template (as an absolute path). If no RPP path is assigned here, a new empty RPP project will be generated for you.
Section - settings
format_names : < true | false > format all variable, file and folder names to kebab-case (if omitted, defaults to false).
format_date : < US | EU | ISO > date formatting (if omitted, defaults to EU).
Section - hierarchy
Here is where you set the folder hierarchy using a custom hierarchy "language" developed especially for Reamake! The language itself is self-explanatory, the only keywords to keep track of are "folder"(a folder), "file"(a file) and "rpp"(the template project you've got set in the section "sources"). Every keyword takes a name within double-qoutes directly after it. When naming files you can add an extension as part of the name, and the file will be generated with that extension.
You can (and should) be making use of variables, since these make a template more general and flexible. But it's not obligatory to use variables - for example, if you don't want to use the "service" or "date" variable you can simply omit them when naming your hierarchy.
Full example
[variables]
client: Cool Artist Name
project: Funk Song
service: Mix
[sources]
rpp: /Users/user/Music/rpp-templates/mix_2026.RPP
[settings]
format_names: false
# US: MM-DD-YYYY, EU: DD-MM-YYYY, ISO: YYYY-MM-DD
format_date: EU
[hierarchy]
folder "$date, [$service] $client - $project" {
folder "project" {
rpp "$project $date"
file "notes.md"
}
folder "stems" {
folder "processed" {}
folder "raw" {
file "todo.md"
}
}
folder "export" {
folder "drafts" {
folder "v1" {}
}
}
file "deadlines $project.md"
}
Dependencies
License
This project is licensed under the MIT License.