Configuration

June 27, 2019 · View on GitHub

Files can be put in two places.

  • ${HOME}/.config/mainframer or ${XDG_CONFIG_HOME} if available — the global configuration;
  • .mainframer — the project configuration.

It is posssible to declare common configuration using the global one and fine-tune it using the project one.

.mainframer

The directory contains following files.

NameRequiredKeep in VCSDescription
config.ymlYesNoConfiguration options.
ignore.ymlNoYesIgnore rules for copying files.

.mainframer/config.yml

remote:
  host: "{SSH machine host}"
push:
  compression: {level}
pull:
  compression: {level}
NameRequiredValueDefaultDescription
remote.hostYesstringRemote machine name from SSH config or hostname / IP address.
push.compressionNo0..90Compression level used to copy files from local machine to remote one.
pull.compressionNo0..90Compression level used to copy files from remote machine to local one.
pull.modeNoserial | parallelserialPull mode. serial pulls once remote command has finished, parallel pulls in parallel to remote command execution.

Compression level is inherited from underlying rsync which uses zlib values:

The compression level must be between 0 and 9: 1 gives best speed, 9 gives best compression, 0 gives no compression at all (the input data is simply copied a block at a time).

.mainframer/ignore.yml

push:
  - "pattern"
  - "..."
pull:
  - "pattern"
  - "..."
both:
  - "pattern"
  - "..."
NameDescriptionSuggestions
pushPatterns used to copy files from local machine to remote one.Build results.
pullPatterns used to copy files from remote machine to local one.Source code.
bothPatterns used to copy files both ways.VCS, IDE-related directories.

Ignore patterns are inherited from underlying rsync. Please refer to rsync documentation — see the Include/Exclude Pattern Rules section. The format is very similar to .gitignore.