Skip to content
 
 

Latest commit

 

History

62 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shortcuts

Console tool to call sets of commands using short aliases.

A distinctive feature is that it is configured entirely in PHP, which means accessibility of code-completion, finding of usage, using of your application constants, validation and actually brings the whole range of PHP possibilities and your IDE features.

The disadvantage of this is that the configuration is more verbose compared to YAML and other simple formats, but it is negligible compared to the benefits that the integration into the host application brings.

installation

requirements

  • PHP 8.2+
    php-cli package is enough (for example on Alpine Linux it can be installed by apk add php82-cli).

download

download short.phar from https://github.com/allapps2/shortcuts/blob/main/bin/short.phar and put it into your project (for example to .for-auto-completion folder to be used by your IDE like PhpStorm for code auto-completion).

global install

to make sc alias available everywhere:

sudo php short.phar install-global

or as any custom alias:

sudo php short.phar install-global <myalias>

usage

in folder with shortcuts.php:

sc [<shortcut> [<arguments>]]

arguments

arguments can be passed named, --name=value (or --name alone for bool flags), in any order:

sc shortcut2 --optionalArgument=value --requiredArgument=value

arguments can also be passed positionally, matching the order they're declared:

sc shortcut2 value1 value2

Named and positional arguments can be mixed; a named argument always takes precedence over a positional one for the same parameter. bool flags and array arguments must always be passed named, since a bare value would be ambiguous for them.

example of shortcuts.php:

use Shortcuts\Command\CommandsCollection;
use Shortcuts\IBuilder;
use Shortcuts\Shortcut;
use Shortcuts\ShortcutArg;
use Shortcuts\ShortcutsCollection;
use Shortcuts\ShortcutsCollectionFactory;

class Shortcuts extends ShortcutsCollection
{
    function shortcut1(): CommandsCollection
    {
        return (new CommandsCollection)->add('long command1');
    }

    #[Shortcut(description: 'Shortcut description')]
    function shortcut2(
        string $requiredArgument,
        #[ShortcutArg(description: 'Optional argument')]
        string $optionalArgument = 'default value'
    ): CommandsCollection
    {
        return (new CommandsCollection)
            ->add('long command2 ' . $requiredArgument)
            ->add('long command3 ' . $optionalArgument);
    }
}

return new class implements IBuilder {
    function build(ShortcutsCollectionFactory $factory): ShortcutsCollection {
        return $factory->create(Shortcuts::class);
    }
};

for contributors

see CONTRIBUTING.md

About

Console tool to call sets of commands using short aliases, configurable in PHP

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages