Skip to content

Commit a3118ee

Browse files
Use PSR-4 autoloading of existing classes; add remaining test files
1 parent daad390 commit a3118ee

28 files changed

+2338
-6
lines changed

.distignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.DS_Store
2+
.git
3+
.gitignore
4+
.gitlab-ci.yml
5+
.editorconfig
6+
.travis.yml
7+
behat.yml
8+
circle.yml
9+
bin/
10+
features/
11+
utils/
12+
*.zip
13+
*.tar.gz

.editorconfig

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# This file is for unifying the coding style for different editors and IDEs
2+
# editorconfig.org
3+
4+
# WordPress Coding Standards
5+
# https://make.wordpress.org/core/handbook/coding-standards/
6+
7+
root = true
8+
9+
[*]
10+
charset = utf-8
11+
end_of_line = lf
12+
insert_final_newline = true
13+
trim_trailing_whitespace = true
14+
indent_style = tab
15+
16+
[{.jshintrc,*.json,*.yml,*.feature}]
17+
indent_style = space
18+
indent_size = 2
19+
20+
[{*.txt,wp-config-sample.php}]
21+
end_of_line = crlf
22+
23+
[composer.json]
24+
indent_style = space
25+
indent_size = 4

.travis.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
sudo: false
2+
3+
language: php
4+
5+
notifications:
6+
email:
7+
on_success: never
8+
on_failure: change
9+
10+
branches:
11+
only:
12+
- master
13+
14+
cache:
15+
- composer
16+
- $HOME/.composer/cache
17+
18+
env:
19+
global:
20+
- PATH="$TRAVIS_BUILD_DIR/vendor/bin:$PATH"
21+
- WP_CLI_BIN_DIR="$TRAVIS_BUILD_DIR/vendor/bin"
22+
23+
matrix:
24+
include:
25+
- php: 7.1
26+
env: WP_VERSION=latest
27+
- php: 7.0
28+
env: WP_VERSION=latest
29+
- php: 5.6
30+
env: WP_VERSION=latest
31+
- php: 5.6
32+
env: WP_VERSION=trunk
33+
- php: 5.3
34+
env: WP_VERSION=latest
35+
36+
before_install:
37+
- phpenv config-rm xdebug.ini
38+
39+
install:
40+
- composer require wp-cli/wp-cli:dev-3728-extension-command
41+
- composer install
42+
- bash bin/install-package-tests.sh
43+
44+
before_script:
45+
- composer validate
46+
47+
script:
48+
- ./bin/test.sh

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (C) 2011-2017 WP-CLI Development Group (https://github.com/wp-cli/extension-command/contributors)
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in
13+
all copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
THE SOFTWARE.

README.md

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
wp-cli/extension-command
2+
========================
3+
4+
Manage WordPress plugins and themes.
5+
6+
[![Build Status](https://travis-ci.org/wp-cli/extension-command.svg?branch=master)](https://travis-ci.org/wp-cli/extension-command)
7+
8+
Quick links: [Using](#using) | [Installing](#installing) | [Contributing](#contributing)
9+
10+
## Using
11+
12+
This package implements the following commands:
13+
14+
### wp plugin
15+
16+
Manage plugins.
17+
18+
~~~
19+
wp plugin
20+
~~~
21+
22+
**EXAMPLES**
23+
24+
# Activate plugin
25+
$ wp plugin activate hello-dolly
26+
Plugin 'hello-dolly' activated.
27+
Success: Activated 1 of 1 plugins.
28+
29+
# Deactivate plugin
30+
$ wp plugin deactivate hello-dolly
31+
Plugin 'hello-dolly' deactivated.
32+
Success: Deactivated 1 of 1 plugins.
33+
34+
# Delete plugin
35+
$ wp plugin delete hello-dolly
36+
Deleted 'hello-dolly' plugin.
37+
Success: Deleted 1 of 1 plugins.
38+
39+
# Install the latest version from wordpress.org and activate
40+
$ wp plugin install bbpress --activate
41+
Installing bbPress (2.5.9)
42+
Downloading install package from https://downloads.wordpress.org/plugin/bbpress.2.5.9.zip...
43+
Using cached file '/home/vagrant/.wp-cli/cache/plugin/bbpress-2.5.9.zip'...
44+
Unpacking the package...
45+
Installing the plugin...
46+
Plugin installed successfully.
47+
Activating 'bbpress'...
48+
Plugin 'bbpress' activated.
49+
Success: Installed 1 of 1 plugins.
50+
51+
52+
53+
### wp theme
54+
55+
Manage themes.
56+
57+
~~~
58+
wp theme
59+
~~~
60+
61+
**EXAMPLES**
62+
63+
# Install the latest version of a theme from wordpress.org and activate
64+
$ wp theme install twentysixteen --activate
65+
Installing Twenty Sixteen (1.2)
66+
Downloading install package from http://downloads.wordpress.org/theme/twentysixteen.1.2.zip...
67+
Unpacking the package...
68+
Installing the theme...
69+
Theme installed successfully.
70+
Activating 'twentysixteen'...
71+
Success: Switched to 'Twenty Sixteen' theme.
72+
73+
# Get details of an installed theme
74+
$ wp theme get twentysixteen --fields=name,title,version
75+
+---------+----------------+
76+
| Field | Value |
77+
+---------+----------------+
78+
| name | Twenty Sixteen |
79+
| title | Twenty Sixteen |
80+
| version | 1.2 |
81+
+---------+----------------+
82+
83+
# Get status of theme
84+
$ wp theme status twentysixteen
85+
Theme twentysixteen details:
86+
Name: Twenty Sixteen
87+
Status: Active
88+
Version: 1.2
89+
Author: the WordPress team
90+
91+
92+
93+
### wp theme mod
94+
95+
Manage theme mods.
96+
97+
~~~
98+
wp theme mod
99+
~~~
100+
101+
**EXAMPLES**
102+
103+
# Set the 'background_color' theme mod to '000000'.
104+
$ wp theme mod set background_color 000000
105+
Success: Theme mod background_color set to 000000
106+
107+
# Get single theme mod in JSON format.
108+
$ wp theme mod get background_color --format=json
109+
[{"key":"background_color","value":"dd3333"}]
110+
111+
# Remove all theme mods.
112+
$ wp theme mod remove --all
113+
Success: Theme mods removed.
114+
115+
## Installing
116+
117+
Installing this package requires WP-CLI v0.23.0 or greater. Update to the latest stable release with `wp cli update`.
118+
119+
Once you've done so, you can install this package with `wp package install wp-cli/extension-command`.
120+
121+
## Contributing
122+
123+
We appreciate you taking the initiative to contribute to this project.
124+
125+
Contributing isn’t limited to just code. We encourage you to contribute in the way that best fits your abilities, by writing tutorials, giving a demo at your local meetup, helping other users with their support questions, or revising our documentation.
126+
127+
### Reporting a bug
128+
129+
Think you’ve found a bug? We’d love for you to help us get it fixed.
130+
131+
Before you create a new issue, you should [search existing issues](https://github.com/wp-cli/extension-command/issues?q=label%3Abug%20) to see if there’s an existing resolution to it, or if it’s already been fixed in a newer version.
132+
133+
Once you’ve done a bit of searching and discovered there isn’t an open or fixed issue for your bug, please [create a new issue](https://github.com/wp-cli/extension-command/issues/new) with the following:
134+
135+
1. What you were doing (e.g. "When I run `wp post list`").
136+
2. What you saw (e.g. "I see a fatal about a class being undefined.").
137+
3. What you expected to see (e.g. "I expected to see the list of posts.")
138+
139+
Include as much detail as you can, and clear steps to reproduce if possible.
140+
141+
### Creating a pull request
142+
143+
Want to contribute a new feature? Please first [open a new issue](https://github.com/wp-cli/extension-command/issues/new) to discuss whether the feature is a good fit for the project.
144+
145+
Once you've decided to commit the time to seeing your pull request through, please follow our guidelines for creating a pull request to make sure it's a pleasant experience:
146+
147+
1. Create a feature branch for each contribution.
148+
2. Submit your pull request early for feedback.
149+
3. Include functional tests with your changes. [Read the WP-CLI documentation](https://wp-cli.org/docs/pull-requests/#functional-tests) for an introduction.
150+
4. Follow the [WordPress Coding Standards](http://make.wordpress.org/core/handbook/coding-standards/).
151+
152+
153+
*This README.md is generated dynamically from the project's codebase using `wp scaffold package-readme` ([doc](https://github.com/wp-cli/scaffold-package-command#wp-scaffold-package-readme)). To suggest changes, please submit a pull request against the corresponding part of the codebase.*

bin/install-package-tests.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/usr/bin/env bash
2+
3+
set -ex
4+
5+
install_db() {
6+
mysql -e 'CREATE DATABASE IF NOT EXISTS wp_cli_test;' -uroot
7+
mysql -e 'GRANT ALL PRIVILEGES ON wp_cli_test.* TO "wp_cli_test"@"localhost" IDENTIFIED BY "password1"' -uroot
8+
}
9+
10+
install_db

bin/test.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
3+
set -ex
4+
5+
# Run the functional tests
6+
BEHAT_TAGS=$(php utils/behat-tags.php)
7+
behat --format progress $BEHAT_TAGS --strict

composer.json

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"name": "wp-cli/extension-command",
3+
"description": "Manage WordPress plugins and themes.",
4+
"type": "wp-cli-package",
5+
"homepage": "https://github.com/wp-cli/extension-command",
6+
"support": {
7+
"issues": "https://github.com/wp-cli/extension-command/issues"
8+
},
9+
"license": "MIT",
10+
"authors": [
11+
{
12+
"name": "Daniel Bachhuber",
13+
"email": "daniel@runcommand.io",
14+
"homepage": "https://runcommand.io"
15+
}
16+
],
17+
"minimum-stability": "dev",
18+
"prefer-stable": true,
19+
"autoload": {
20+
"psr-4": {
21+
"": "src/",
22+
"WP_CLI\\": "src/WP_CLI"
23+
},
24+
"files": [ "extension-command.php" ]
25+
},
26+
"require": {},
27+
"require-dev": {
28+
"behat/behat": "~2.5",
29+
"wp-cli/wp-cli": "*"
30+
},
31+
"extra": {
32+
"branch-alias": {
33+
"dev-master": "1.x-dev"
34+
},
35+
"commands": [
36+
"plugin",
37+
"theme",
38+
"theme mod"
39+
]
40+
}
41+
}

extension-command.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
if ( ! class_exists( 'WP_CLI' ) ) {
4+
return;
5+
}
6+
7+
$autoload = dirname( __FILE__ ) . '/vendor/autoload.php';
8+
if ( file_exists( $autoload ) ) {
9+
require_once $autoload;
10+
}
11+
12+
WP_CLI::add_command( 'plugin', 'Plugin_Command' );
13+
WP_CLI::add_command( 'theme', 'Theme_Command' );
14+
WP_CLI::add_command( 'theme mod', 'Theme_Mod_Command' );

0 commit comments

Comments
 (0)