README
pathmaster
Table of Contents
Introduction
pathmaster is a powerful command-line tool written in Rust for managing your system's PATH environment variable. It simplifies the process of adding and removing directories from your PATH, ensures backups are created automatically, and provides tools to restore previous configurations.
Managing the PATH variable is crucial for system performance and command execution. pathmaster provides a safe and efficient way to handle PATH modifications, with features designed to prevent errors and maintain system stability.
Features
- Effortless Management: Easily add or remove directories from your
PATH. - Automatic Backups: Creates time-stamped backups of your
PATHbefore any changes. - Restoration: Restore your
PATHfrom any previous backup. - Listing: View all current entries in your
PATH. - Cross-Platform: Compatible with Unix/Linux and macOS systems.
- Safe Modifications: Validates directories before adding them to prevent errors.
- Persistent Changes: Updates your shell configuration to make changes permanent.
Installation
Prerequisites
-
Rust Toolchain: Ensure you have Rust installed. You can install Rust using rustup:
|
Building from Source
-
Clone the Repository
-
Build the Project
This command compiles the project in release mode, producing an optimized binary.
-
Install the Binary
Optionally, you can install the binary system-wide:
Or add it to your
PATH:
Usage
Command Overview
Commands
add
Add a directory to your PATH.
Usage:
Options:
<directory>: The directory path to add to yourPATH.
remove
Remove a directory from your PATH.
Usage:
Options:
<directory>: The directory path to remove from yourPATH.
list
List all current entries in your PATH.
Usage:
history
Show the backup history of your PATH.
Usage:
restore
Restore your PATH from a previous backup.
Usage:
Options:
--timestamp <timestamp>: (Optional) The timestamp of the backup to restore. If not provided, the most recent backup is used.
Examples
-
Add a Directory to PATH
-
Remove a Directory from PATH
-
List PATH Entries
Sample Output:
Current PATH entries: - /usr/local/bin - /usr/bin - /bin - /usr/local/sbin - /usr/sbin - /sbin - ~/my/custom/bin -
Show Backup History
Sample Output:
Available backups: - backup_20231007_120000.json - backup_20231008_090000.json -
Restore PATH from a Specific Backup
-
Restore PATH from the Most Recent Backup
Configuration
pathmaster modifies your shell configuration file to make changes to PATH persistent across sessions.
- Supported Shells: Bash (
.bashrc), Zsh (.zshrc), or a generic.profileif the shell is not recognized. - Backup Directory: Backups are stored in
~/.pathmaster_backups.
Note: Always review changes made to your shell configuration files. pathmaster adds an export command to update your PATH.
Backup Management
- Automatic Backups: Before any modification,
pathmastercreates a backup of your currentPATHwith a timestamp. - Backup Files: Stored as JSON files in
~/.pathmaster_backups. - Restoration: Use the
restorecommand to revert to a previousPATHconfiguration.
Backup File Format Example (backup_20231008_090000.json):
Contributing
Contributions are welcome! Please follow these steps:
-
Fork the Repository
-
Create a Feature Branch
-
Commit Your Changes
-
Push to the Branch
-
Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.