Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/boxuk/dictator
Dictator controls the State of WordPress
https://github.com/boxuk/dictator
Last synced: 5 days ago
JSON representation
Dictator controls the State of WordPress
- Host: GitHub
- URL: https://github.com/boxuk/dictator
- Owner: boxuk
- License: mit
- Created: 2021-03-22T14:51:31.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-12-01T09:59:37.000Z (almost 2 years ago)
- Last Synced: 2024-11-04T15:22:41.529Z (10 days ago)
- Language: PHP
- Homepage:
- Size: 184 KB
- Stars: 32
- Watchers: 10
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Dictator
[![Linting status](https://github.com/boxuk/dictator/actions/workflows/linting.yml/badge.svg)](https://github.com/boxuk/dictator/actions/workflows/linting.yml)
[![Testing status](https://github.com/boxuk/dictator/actions/workflows/testing.yml/badge.svg)](https://github.com/boxuk/dictator/actions/workflows/testing.yml)## Attribution
- This package was forked from
[Dictator](https://danielbachhuber.com/2014/03/31/introducing-dictator/)
with permission due to it seemingly falling into abandonment.
## OverviewDictator controls the State of WordPress. Strongly influenced by [Salt](http://www.saltstack.com/), 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: twentyfourteenApply 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 ` - Compare a given state file to the State of WordPress. Produces a colorized diff if differences, otherwise empty output.
* `wp dictator export [--regions=] [--force]` - Export the State of WordPress to a state file.
* `wp dictator impose [--regions=]` - Impose a given state file onto WordPress.
* `wp dictator validate ` - 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
* [Dictator WooCommerce](https://github.com/boxuk/dictator-woocommerce)