symp 0.5.0

symlink farm manager that utilizes configuration files to define symlink mappings
# `symp.toml` File Reference

## **defaults.packages.existing_file_policy**

(Default value: `"error"`)

Set the default value for
**[packages.<package_name>.existing_file_policy](#packagespackage_nameexisting_file_policy)**.
Can be one of:

- `"error"` - raise an error (no symlinks will be created).
- `"backup"` - backup the destination (destination will be renamed to `${destination}.bkp-{i}`).
- `"replace"` - replace the destination (the original file/directory will be deleted).
- `"skip"` - skip creating the symlink for this destination (the original file/directory will remain intact).

## **defaults.packages.source_root**

(Default value: `"."`)

Set the default value for
**[packages.<package_name>.source_root](#packagespackage_namesource_root)**.
The path may contain `~`, `.`, `..` markers and environment variables (like `$HOME`).

## **defaults.packages.destination_root**

(Default value: `"/"`)

Set the default value for
**[packages.<package_name>.destination_root](#packagespackage_namedestination_root)**.
The path may contain `~`, `.`, `..` markers and environment variables (like `$HOME`).

## **packages.<package_name>.existing_file_policy**

(Default value: **[defaults.packages.existing_file_policy](#defaultspackagesexisting_file_policy)**)

Set the policy used for handling symlink destination locations that already exist in
the filesystem. Can be one of:

- `"error"` - raise an error (no symlinks will be created).
- `"backup"` - backup the destination (destination will be renamed to `${destination}.bkp-{i}`).
- `"replace"` - replace the destination (the original file/directory will be deleted).
- `"skip"` - skip creating the symlink for this destination (the original file/directory will remain intact).

## **packages.<package_name>.links[*].source**

(Required for each link)

Set the source path for the link. The actual path on the filesystem will be
this path appended to
**[packages.<package_name>.source_root](#packagespackage_namesource_root)**.
The path may contain `~`, `.`, `..` markers and environment variables (like `$HOME`).

## **packages.<package_name>.links[*].destination**

(Required for each link)

Set the destination path for the link. The actual path on the filesystem will be
this path appended to
**[packages.<package_name>.destination_root](#packagespackage_namesource_root)**.
The path may contain `~`, `.`, `..` markers and environment variables (like `$HOME`).

## **packages.<package_name>.source_root**

(Default value: **[defaults.packages.source_root](#defaultspackagessource_root)**)

Set the root directory for all **[link sources](#packagespackage_namelinkssource)**
in this package. All link sources will appended to the end of this path.
The path may contain `~`, `.`, `..` markers and environment variables (like `$HOME`).

## **packages.<package_name>.destination_root**

(Default value: **[defaults.packages.destination_root](#defaultspackagesdestination_root)**)

Set the root directory for all **[link destinations](#packagespackage_namelinksdestination)** in this package.
All link destinations will appended to the end of this path.
The path may contain `~`, `.`, `..` markers and environment variables (like `$HOME`).