Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tristanpoland/sync
SYNC - System Yielding New Configurations. A config update manager
https://github.com/tristanpoland/sync
Last synced: 11 days ago
JSON representation
SYNC - System Yielding New Configurations. A config update manager
- Host: GitHub
- URL: https://github.com/tristanpoland/sync
- Owner: tristanpoland
- License: apache-2.0
- Created: 2024-10-16T14:05:16.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-16T14:12:26.000Z (2 months ago)
- Last Synced: 2024-12-08T18:37:31.891Z (17 days ago)
- Language: Shell
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SYNC - System Yielding New Configurations
SYNC is a powerful tool designed to streamline the process of releasing new versions of configurations across different environments. It efficiently merges configuration files, ensuring smooth updates and consistent environments.
## Features
- Merges YAML and JSON configuration files
- Appends content to non-YAML/JSON files
- Generates detailed logs of all changes
- Checks for dependencies and assists with installation
- Supports multiple environments and version control## Prerequisites
- Bash (version 4.0 or later)
- yq (will be installed if not present)## Installation
1. Clone this repository:
```
git clone https://github.com/your-username/sync.git
cd sync
```2. Make the main script executable:
```
chmod +x sync.sh
```## Usage
Run SYNC with the following command:
```
./sync.sh
```Where:
- `` is the path to the directory containing your new configuration files
- `` is the path to the directory where the configurations should be updated## How It Works
1. SYNC checks for required dependencies (mainly `yq`) and prompts for installation if needed.
2. It processes each file in the template directory:
- For YAML and JSON files, it merges the content with existing files in the target directory.
- For other file types, it appends the content to existing files or creates new files.
3. A detailed log file (`merge_log.txt`) is generated, showing all changes made during the process.## Example
```
./sync.sh /path/to/new/configs /path/to/existing/configs
```This command will update the configurations in `/path/to/existing/configs` with the new configurations from `/path/to/new/configs`.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
[MIT License](LICENSE)
## Support
If you encounter any problems or have any questions, please open an issue in this repository.