boxuk/dictator

The Dictator controls the state of WordPress

Installs: 23 918

Dependents: 2

Suggesters: 0

Security: 0

Stars: 32

Watchers: 10

Forks: 0

Type:wp-cli-package

v1.0 2022-12-01 09:21 UTC

This package is auto-updated.

Last update: 2024-10-29 06:18:57 UTC


README

Linting status Testing status

Attribution

  • This package was forked from Dictator with permission due to it seemingly falling into abandonment.

Overview

Dictator controls the State of WordPress. Strongly influenced by Salt, Dictator permits configuration attributes stored in YAML state files to be imposed upon WordPress.

Dictator's primary concern is to permit the expression of how WordPress is configured as YAML state files. It understands WordPress in terms of states. States are collections of regions. Each state file has the state declaration, and any tracked configuration details for each region.

For example, the site state includes the settings, users, and terms regions. Running wp dictator export site site-state.yml against production data will export the production state into a human-readable state file:

state: site
settings:
  title: Dictator
  description: Just another WordPress site controlled by Dictator
  date_format: F j, Y
  time_format: g:i a
  active_theme: twentyfourteen

Apply the state file locally with wp dictator impose site-state.yml and you've replicated production without having to download the database.

Installation

WP-CLI package

wp package install boxuk/dictator

Composer package

composer req boxuk/dictator

Usage

Dictator comprises these WP-CLI commands:

  • wp dictator compare <file> - Compare a given state file to the State of WordPress. Produces a colorized diff if differences, otherwise empty output.
  • wp dictator export <state> <file> [--regions=<regions>] [--force] - Export the State of WordPress to a state file.
  • wp dictator impose <file> [--regions=<regions>] - Impose a given state file onto WordPress.
  • wp dictator validate <file> - Validate the provided state file against each region's schema.

First time user? Try Dictator out by calling wp dictator export site site-state.yml, making a change to the state file, and seeing a colorized diff of how it compares with wp dictator compare site-state.yml.

Extending

Even though Dictator is in its infancy, it was written with extensibility in mind. New states can be registered with Dictator::addState();, and can comprise a selection of existing or custom regions. Write a state / region for your plugin / theme to make it easy for your users to export / impose settings.

Existing extensions