# cmdlink `cmdlink` is a cross-platform command-line application built with Rust that allows you to create and manage aliases for system commands. These aliases are saved in a configuration file and linked to scripts in the `bins` directory. This tool is designed to streamline command management and improve command-line efficiency. ## Features - **Add Aliases**: Create new command aliases with custom descriptions. - **Remove Aliases**: Easily delete aliases and their associated binaries. - **Display Aliases**: View all active aliases and their descriptions. ## Installation 1. Clone the repository: ```bash git clone https://github.com/ehuff700/cmdlink.git cd cmdlink ``` 2. Build the application using Cargo. During the build process, cmdlink will setup all necessary directories: ```bash cargo build --release ``` 3. Run the application by navigating to the build directory: ```bash ./target/release/cmdlink ``` Or, optionally, if you prefer not to build from source: ```bash cargo install cmdlink ``` ## Usage Run cmdlink with the following commands to manage your aliases: ### **Add a New Alias** ```bash cmdlink add -c [--desc ] [--force] ``` Arguments: : The name of the alias you wish to create. --cmd : The command that the alias will execute. --desc (optional): A short description of the alias. --force (optional): Forces the alias creation if it already exists. Example: ```bash cmdlink add myalias --cmd "echo Hello, World!" --desc "Prints a greeting" --force ``` ### **Remove an Alias** Removes an existing alias and its binary link. ```bash cmdlink remove ``` Arguments: : The name of the alias you wish to remove. Example: ``` cmdlink remove myalias ``` ### Display All Aliases Displays all existing aliases along with their descriptions. ``` cmdlink display ``` ### Refresh Links Refreshes all alias links based on the configuration file, updating binaries in the bins directory. ``` cmdlink refresh ``` View the --help function to see additional information for each subcommand. ## Configuration Aliases are saved in a configuration file (config.toml) located in the project directory. The structure of this file is as follows: ```toml [aliases] myalias = { cmd = "echo Hello, World!", description = "Prints a greeting" } another_alias = { cmd = "ls -la", description = "Lists all files in long format" } ``` The cmdlink application reads from this file and creates binary links in the bins directory based on the commands specified for each alias. You **should not** manually edit this file, but if you do, run cmdlink refresh to save your changes to the bin files. Directory Structure config.toml: Stores alias names, commands, and descriptions. bins/: Contains the binary files linked to each alias. These binaries are generated by cmdlink when an alias is added or refreshed. ## License This project is licensed under either of * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option.