fetchme 1.1.1
package for caching and aliasing long commands
License: Apache 2.0
Requires Python: >=3
Keywords: alias,cli,command-aliasing,bash-aliasing

====================================
Fetchme - Safe Command Aliasing Tool
====================================

.. image:: https://badge.fury.io/py/fetchme.svg
    :target: https://badge.fury.io/py/fetchme

.. image:: https://travis-ci.org/BNMetrics/fetchme.svg?branch=master
    :target: https://travis-ci.org/BNMetrics/fetchme

.. image:: https://codecov.io/gh/BNMetrics/fetchme/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/BNMetrics/fetchme


.. contents:: **Table of Contents**


What is fetchme?
================
**fetchme** is a cli tool for safe aliasing. This package allows aliasing of long commands without using the default bash aliasing.

**Why use fetchme?**
  - Safe aliasing commands, no more accident in overriding a existing command
  - Easy to use



Installation
============

Make sure python 3.6 is installed on your machine, if not, click `here <https://www.python.org/downloads/>`_ to follow the instructions on installation.


Then install the latest version of fetchme via **pip**:

.. code-block:: bash

    $ pip3 install fetchme


Once you install the package, there will be a configuration file ``.fetchmerc`` generated in your *home directory*,
and this is where you put all your aliases.


Usage & References
==================


Default Commands
----------------

**fetchme** comes with 3 default commands: ``edit``, ``set`` and ``remove``.


edit
~~~~

``edit`` command opens up the ``.fetchmerc`` file in an editor. If you have configured your preferred editor in the environment variable ``EDITOR``,
the preferred editor will be launched. The default editor is ``vim`` if the environment variable is not being configured.

**Usage**:

::

    fetchme edit [OPTIONS]


**Example**:

.. code-block:: bash

    $ fetchme edit



set
~~~

This command is for setting an alias to a long command.

**Usage**:

::

    fetchme set [OPTIONS] CONTENT


**Example**:

.. code-block:: bash

    $ fetchme set ssh="ssh -i /path/to/my/key/file root@123.43.678.678"


The ``CONTENT`` argument is where you set your alias as key=value pair, it is recommended that you **quote** the command that is
to be aliased, like so in the example.

An additional line will be added to ``.fetchmerc`` file after the ``set`` command is being executed.

.. code-block:: ini

    [fetchme]
    ssh = ssh -i /path/to/my/key/file root@123.43.678.678


**Options**:

--override, -o: *flag*, override an existing alias, this flag must to be past when you
                        need to overriding an existing alias that has already been set.


remove
~~~~~~

This command is to remove an existing alias.

**Usage**:

::

    fetchme remove [OPTIONS] NAME


**Example**:

.. code-block:: bash

    $ fetchme remove ssh



The ``NAME`` argument corresponds to an alias that is being set in the ``.fetchmerc`` file.



Executing Aliased Commands
--------------------------

Once you have ``set`` the alias to your command, you can execute your command by directing calling it with fetchme.

**Usage**:

::

    fetchme ALIAS [OPTIONS]


**Example**:

.. code-block:: bash

    $ fetchme ssh


To see the original *unaliased* command, you can use the ``-h`` flag to bring up the descriptions.


Global Options
--------------

These options applies to all the commands, including the aliases.


Call 'help' commands
~~~~~~~~~~~~~~~~~~~~

.. code-block:: bash

    $ fetchme -h

    $ fetchme ssh -h

Calling ``fetchme -h`` command also displays available commands, this includes the aliases you have defined.


Check fetchme version
~~~~~~~~~~~~~~~~~~~~~

.. code-block:: bash

    $ fetchme -v