/Confix

Confix is a powerful yet simple CLI tool designed to help you manage package configurations effortlessly. 📦✨

Primary LanguageC++GNU General Public License v3.0GPL-3.0

🛠️ Confix 🚀

Confix is a powerful yet simple CLI tool designed to help you manage package configurations effortlessly. 📦✨

Table of Contents

Features

  • 🔍 Check if packages are installed
  • 📥 Install missing packages
  • 📝 Manage configurations with ease
  • 🌟 Supports JSON and JSONC (kindoff)

Get your configurations fixed with Confix! 🛠️🔧

Prerequisites

Before you begin, ensure you have the following prerequisites installed on your system:

  • Arch-based Linux distribution: Confix is specifically designed for Arch-based distributions.
  • yay: Confix utilizes yay as the package manager for installing and managing packages.
  • JSON configuration file: You need a valid JSON configuration file located at ~/.config/confix/packages.json that lists the packages you want Confix to manage.

Dependencies

Confix requires the following dependencies to be installed on your system:

  • jsoncpp: A C++ library for handling JSON data.
  • argparse: A command-line argument parsing library.

You can install these dependencies on Arch-based systems using the following command:

sudo pacman -S --noconfirm jsoncpp argparse

Installation

  1. Clone this project to your local machine:
git clone https://github.com/Srinath10X/Confix.git
  1. Change directory to the project folder:
cd Confix
  1. Compile the source and Install confix :
make install
  1. Ensure your local bin directory is in your PATH (if not already):
export PATH=$PATH:$HOME/.local/bin:$HOME/bin

Usage

After installation, you can run Confix from the terminal:

confix

Confix will read the configuration file (~/.config/confix/packages.json or ~/.config/confix/packages.jsonc), check for the specified packages, and install any that are missing.

Configuration

Ensure your configuration file (~/.config/confix/packages.json or ~/.config/confix/packages.jsoc) follows this structure:

{
	"packages": [
		"package1",
		"package2",
		"package3",
		"package4",
		"....",
		"packageN"
	]
}

List all the packages you want Confix to manage under the "packages" array.

Contributing

Contributions are welcome! If you have suggestions or improvements, please feel free to open an issue or a pull request.

License

This project is licensed under the GPL v3 License.