Giter Club home page Giter Club logo

wire-cli's Introduction

wire-cli illustration

wire-cli

wire-cli is a CLI (Command-Line Interface) tool designed to provide ease of use and efficiency for ProcessWire developers. With wire-cli, you can automate common tasks, manage ProcessWire projects effortlessly, and enhance your development workflow.

Features

  • Create new ProcessWire projects
  • Serve ProcessWire via built-in PHP webserver
  • Perform database backup and restoration
  • Manage fields, templates, roles, users, and modules
  • Generate boilerplate modules
  • Check for core upgrades
  • And more...

wire-cli is based on the defunct wireshell, built using the Symfony Console Component, offering a powerful and intuitive command-line interface for interacting with ProcessWire projects and adding new commands. It is compatible with PHP 8.1.

Please note that wire-cli and another tool called rockshell share similar goals and functionality. In the future, the features of wire-cli and rockshell will be merged to provide a unified and comprehensive CLI tool for ProcessWire developers.

Installation

To install wire-cli, you need to have Composer installed. Run the following command to install wire-cli globally:

composer global require wirecli/wire-cli

Usage

Run wire-cli followed by the desired command to execute various tasks. For example:

wire-cli new myproject

For a complete list of available commands and options, use the help command:

Documentation

For detailed documentation and usage examples, please refer to the official documentation.

Support thread: https://processwire.com/talk/topic/28788-wire-cli-a-cli-tool-for-processwire-developers/

Contributing

Contributions are welcome! If you encounter any issues or have suggestions for improvements, please submit an issue or a pull request on the GitHub repository.

Contributors

As always, thanks to all the contributors!

j. eizmendi

Available commands

Commands preview

Credits

wire-cli is inspired by the work of the following authors of the initial developers/contributors of wireshell:

  • Marcus Herrmann
  • Hari K T
  • Bea David
  • Camilo Castro
  • Horst Nogajski

License

This project is licensed under the MIT License.

wire-cli's People

Contributors

flydev-fr avatar github-actions[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

wire-cli's Issues

Allow `new` command in non-empty dirs

Good day, @flydev-fr ! Thanks for this tool once again!

You taught me how to install and use wirecli non-globally. I think that it is pretty cool way to use it not only for the development. Rockshell uses this way of installation by default.

The issue with this now is new command wouldn't work this way, as it requires an empty folder for installation. Could we remove this restriction? What do you think?

SSL certificate problem

When I try to "wirecli new" on my local machine, I get the error: Error loading sha master, curl request failed (status code: 0, url: https://raw.githubusercontent.com/processwire/processwire/master/wire/core/ProcessWire.php). cURL error: SSL certificate problem: unable to get local issuer certificate

Does it perhaps a linux-installation? (I am using Windows)

Setting site/config.php with wire-cli

Hello, @flydev-fr!

I found some problems with installing ProcessWire via wire-cli.

I think that the following should be added to the site/config.php file:

  1. $config->tableSalt (salt);
  2. $config->installed (installation date).

Can you please add it?

module:enable not working for copied-in or submodule add'ed modules.

@flydev-fr Hi Flydev - thank you for taking on this project.

The module:enable command fails to install modules that have been copied, or git submodule added, into the site/modules/ directory (rather than having been downloaded by wirecli) despite reporting success enabling the modules.

Once wirecli module:enable <module> is executed, and reporting success, then logging in to the PW admin interface and refreshing the modules list shows the modules as not being installed. If you install them in the PW admin interface, then wirecli is subsequently able to successfully uninstall (module:disable) and re-install (module:enable) the module as expected.

Upgrading a module returned error

When I used wirecli to upgrade a module, it returned the following error

In Downloader.php line 169:

  ProcessWire can't be installed because the target folder `/home/#####/webapps/#####/public/site/modules/AddIma
  geUrls` is not empty.
  Use an empty directory or provide an argument where the new project will be created like `wire-cli new <dirname>`


module:upgrade [--check] [--] [<modules>...]

Thanks!

PHP 8.2 warning

For your info:

When running wirecli serve on PHP 8.2:

Starting PHP server at http://localhost:8080 ...
PHP Deprecated:  Creation of dynamic property Wirecli\Commands\Common\ServeCommand::$helper is deprecated in ..\vendor\wirecli\wire-cli\src\Commands\Common\ServeCommand.php on line 47

Deprecated: Creation of dynamic property Wirecli\Commands\Common\ServeCommand::$helper is deprecated in ..\vendor\wirecli\wire-cli\src\Commands\Common\ServeCommand.php on line 47

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.