wireshell

ProcessWire command-line companion

What is wireshell?

A command-line interface for CMS/CMF ProcessWire based on Symfony Console component. Can be easily extended through ProcessWire's ability of being bootstrapped into other applications, its great API, and Symfony Console's modular command approach.

Usage example

Here's a short demonstration of wireshell. Of course it covers only a small portion of it's functionality, so please have a look at the list of available commands to see what's possible.

Getting Started

Installation

Wireshell requires Composer and a local PHP installation >= 5.4.0, and – of course – ProcessWire.

  1. Download and install Composer globally (if it isn't on your system already)
  2. Run $ composer global require wireshell/wireshell
  3. Add wireshell to your system path (in .bashrc or similar):
    unix-based systems: export PATH="$HOME/.composer/vendor/bin:$PATH"
    Windows: %appdata%\Composer\vendor\bin

Upgrading

You can update update wireshell like any other Composer package:

$ composer global require wireshell/wireshell:dev-master

Documentation

For detailed usage please go to wireshell docs.

Extending

Contributors

Who can contribute?

Anyone! Thanks for your interest in extending wireshell. Please point your GitHub Pull Request towards the develop branch.

Core:

Community:

… and probably a few more (if you have the feeling that we should mention you - let us know!)

Guide

Symfony

Symfony Console is part of the Symfony Framework and a great workbench for command line apps. There are other command line interfaces for CMS/CMF's around, such as DrupalConsole, that are also based on Console. In general commands are single classes with a transparent set of dependencies (Input, Output) wrapped in a single app. Find out more in the official documentation and check out sample code. Also have a look at already created wireshell commands.

Styleguide

In lieu of a formal styleguide, take care to maintain the existing coding style. Note the .editorconfig file in the repository.

Output

There are a bunch of existing functions to tint the output, to get an overview what's possible, please run wireshell write.

Support

We support you through different channels: the ever growing wireshell forum topic and the project on GitHub - if you've got any problems with or ideas for wireshell please feel free to open an issue.

We're excitedly awaiting your feedback. Your comments and any questions or suggestions are always welcome.