Skip to main content

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

aliasmate-0.1.3.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aliasmate-0.1.3-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file aliasmate-0.1.3.tar.gz.

File metadata

  • Download URL: aliasmate-0.1.3.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for aliasmate-0.1.3.tar.gz
Algorithm Hash digest
SHA256 f9e0f22a79d94997b24c370ebab43c71227d500d9e8ac4644b2fa9ce18807e2f
MD5 c65c820d938f0bbac6e765d276dda42d
BLAKE2b-256 62262834f7c0f693d63c68a879d0157e68f68136bb674c0254a2e27a60b3cdf4

See more details on using hashes here.

File details

Details for the file aliasmate-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: aliasmate-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for aliasmate-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f20eca6debf7cb42ad8b3ce66c111be75ea42a4b5e9953121fc42fd43131daa6
MD5 1894c64f7ed35151af7c1e26f4a2f12f
BLAKE2b-256 3d06308543feacfadc9793e4ccef5f4b9a67ff83c3c36bff8a7c53b7dda88551

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page