A command-line alias substitution tool
Project description
AliasMate
AliasMate is a command-line tool that allows you to execute commands based on configuration files containing aliases. It simplifies complex commands by providing a readable and configurable way to use application aliases and arguments.
Features
- Supports JSON and YAML configuration files.
- Alias translation: You can define aliases for commands and their arguments in the config file.
- Multiple arguments: Supports multiple arguments after the alias.
- Combines application name, alias, and extra arguments into a single command.
- Error handling: Exits with the external command's status code.
Installation
pip install aliasmate
or
git clone https://github.com/maslovw/aliasmate.git
cd aliasmate
pip install .
Usage
Configuration File
The configuration file can be in either JSON or YAML format. It defines the application to be executed and the aliases for the command arguments.
Here’s an example config.json file:
{
"application": "mount",
"alias": {
"read only": "-o ro",
"read write": "-o rw",
"no execute": "-o noexec",
"user mount": "-o user",
"bind": "--bind",
"verbose": "-v",
"all": "-a",
"remount": "-o remount",
"loop": "-o loop"
}
}
Example Command
$ alias mountmate="aliasmate -c mount_aliases.json --"
$ sudo mountmate read only /dev/sdb1 /mnt/usb
This command will execute:
mount -o ro /dev/sdb1 /mnt/usb
It is possible to pass arguments to aliasmate with second -- group of arguments:
$ sudo mountmate read only /dev/sdb1 /mnt/usb -- --verbose
Command for execution:
mount -o ro /dev/sdb1 /mnt/usb
Another example
{
"application": "tar",
"alias": {
"create": "-c",
"extract": "-x",
"gzip": "-z",
"bzip2": "-j",
"file": "-f",
"verbose": "-v",
"list": "-t",
"xz": "-J"
}
}
$ alias tarmate="aliasmate -c tar_aliases.json --"
$ tarmate create gzip file archive.tar.gz directory/
$ tarmate extract bzip2 verbose file archive.tar.bz2
$ tarmate list xz file 'archive.tar.xz'
Arguments
-c, --config <FILE>: Specifies the configuration file (JSON or YAML).-s,--show-alias: print currently used configuration and resulting command, without execution-v,--verbose: print resulting command and execute it- Additional arguments (after
--) are passed directly to the application. - 2nd Additional arguments (after 2nd
--) are passed directly to the aliasmate(append to first arguments).
Contributing
Contributions are welcome! Feel free to submit issues and pull requests to improve the tool.
Author
Developed by Slava Maslov.
Example Usage:
It is intended to use alias (or .bat for windows) for this tool
# create shell alias in .bashrc for example
alias mount="aliasmate -c ~/.config/aliasmate/mount.json --"
# call aliasmate with mount.json
mount myserver readwrite -t nfs
# this command will be translated into
# mount /media/myserver -o rw -t nfs
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aliasmate-0.1.1.tar.gz.
File metadata
- Download URL: aliasmate-0.1.1.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6d5bde14d2c5b04652092ee508d32843d0ed28badfa6acc1fb050f73184ea1e
|
|
| MD5 |
dec32a21b55ace45af37c9762cbdd993
|
|
| BLAKE2b-256 |
4173cafc6c23bc1bac16e24d4a0f1bf4a48764f251632048699cd298ad2ffcc1
|
File details
Details for the file aliasmate-0.1.1-py3-none-any.whl.
File metadata
- Download URL: aliasmate-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a47515cd2af4260ce4cf44042283b767d1924f3b0e6fb7cbc123137bf32e06f1
|
|
| MD5 |
1245f5b10f4caab6a8b0b0d233303d70
|
|
| BLAKE2b-256 |
76e772a6b6e3ce7dd07dc682946751990d68b99e2700e083c0f220acc1b785c7
|