Generates and reads the fin-config.php file.
Quick links: Using | Installing | Contributing | Support
This package implements the following commands:
Generates and reads the fin-config.php file.
fin config
EXAMPLES
# Create standard fin-config.php file.
$ fin config create --dbname=testing --dbuser=fin --dbpass=securepswd --locale=ro_RO
Success: Generated 'fin-config.php' file.
# List constants and variables defined in fin-config.php file.
$ fin config list
+------------------+------------------------------------------------------------------+----------+
| key | value | type |
+------------------+------------------------------------------------------------------+----------+
| table_prefix | fin_ | variable |
| DB_NAME | fin_cli_test | constant |
| DB_USER | root | constant |
| DB_PASSWORD | root | constant |
| AUTH_KEY | r6+@shP1yO&$)1gdu.hl[/j;7Zrvmt~o;#WxSsa0mlQOi24j2cR,7i+QM/#7S:o^ | constant |
| SECURE_AUTH_KEY | iO-z!_m--YH$Tx2tf/&V,YW*13Z_HiRLqi)d?$o-tMdY+82pK$`T.NYW~iTLW;xp | constant |
+------------------+------------------------------------------------------------------+----------+
# Get fin-config.php file path.
$ fin config path
/home/person/htdocs/project/fin-config.php
# Get the table_prefix as defined in fin-config.php file.
$ fin config get table_prefix
fin_
# Set the FIN_DEBUG constant to true.
$ fin config set FIN_DEBUG true --raw
Success: Updated the constant 'FIN_DEBUG' in the 'fin-config.php' file with the raw value 'true'.
# Delete the COOKIE_DOMAIN constant from the fin-config.php file.
$ fin config delete COOKIE_DOMAIN
Success: Deleted the constant 'COOKIE_DOMAIN' from the 'fin-config.php' file.
# Launch system editor to edit fin-config.php file.
$ fin config edit
# Check whether the DB_PASSWORD constant exists in the fin-config.php file.
$ fin config has DB_PASSWORD
$ echo $?
0
# Assert if MULTISITE is true.
$ fin config is-true MULTISITE
$ echo $?
0
# Get new salts for your fin-config.php file.
$ fin config shuffle-salts
Success: Shuffled the salt keys.
Launches system editor to edit the fin-config.php file.
fin config edit [--config-file=<path>]
OPTIONS
[--config-file=<path>]
Specify the file path to the config file to be edited. Defaults to the root of the
FinPress installation and the filename "fin-config.php".
EXAMPLES
# Launch system editor to edit fin-config.php file
$ fin config edit
# Edit fin-config.php file in a specific editor
$ EDITOR=vim fin config edit
Deletes a specific constant or variable from the fin-config.php file.
fin config delete <name> [--type=<type>] [--config-file=<path>]
OPTIONS
<name>
Name of the fin-config.php constant or variable.
[--type=<type>]
Type of the config value to delete. Defaults to 'all'.
---
default: all
options:
- constant
- variable
- all
---
[--config-file=<path>]
Specify the file path to the config file to be modified. Defaults to the root of the
FinPress installation and the filename "fin-config.php".
EXAMPLES
# Delete the COOKIE_DOMAIN constant from the fin-config.php file.
$ fin config delete COOKIE_DOMAIN
Success: Deleted the constant 'COOKIE_DOMAIN' from the 'fin-config.php' file.
Generates a fin-config.php file.
fin config create --dbname=<dbname> --dbuser=<dbuser> [--dbpass=<dbpass>] [--dbhost=<dbhost>] [--dbprefix=<dbprefix>] [--dbcharset=<dbcharset>] [--dbcollate=<dbcollate>] [--locale=<locale>] [--extra-php] [--skip-salts] [--skip-check] [--force] [--config-file=<path>] [--insecure] [--ssl]
Creates a new fin-config.php with database constants, and verifies that the database constants are correct.
OPTIONS
--dbname=<dbname>
Set the database name.
--dbuser=<dbuser>
Set the database user.
[--dbpass=<dbpass>]
Set the database user password.
[--dbhost=<dbhost>]
Set the database host.
---
default: localhost
---
[--dbprefix=<dbprefix>]
Set the database table prefix.
---
default: fin_
---
[--dbcharset=<dbcharset>]
Set the database charset.
---
default: utf8
---
[--dbcollate=<dbcollate>]
Set the database collation.
---
default:
---
[--locale=<locale>]
Set the FINLANG constant. Defaults to $fin_local_package variable.
[--extra-php]
If set, the command copies additional PHP code into fin-config.php from STDIN.
[--skip-salts]
If set, keys and salts won't be generated, but should instead be passed via `--extra-php`.
[--skip-check]
If set, the database connection is not checked.
[--force]
Overwrites existing files, if present.
[--config-file=<path>]
Specify the file path to the config file to be created. Defaults to the root of the
FinPress installation and the filename "fin-config.php".
[--insecure]
Retry API download without certificate validation if TLS handshake fails. Note: This makes the request vulnerable to a MITM attack.
[--ssl]
Use SSL when checking the database connection.
EXAMPLES
# Standard fin-config.php file
$ fin config create --dbname=testing --dbuser=fin --dbpass=securepswd --locale=ro_RO
Success: Generated 'fin-config.php' file.
# Enable FIN_DEBUG and FIN_DEBUG_LOG
$ fin config create --dbname=testing --dbuser=fin --dbpass=securepswd --extra-php <<PHP
define( 'FIN_DEBUG', true );
define( 'FIN_DEBUG_LOG', true );
PHP
Success: Generated 'fin-config.php' file.
# Avoid disclosing password to bash history by reading from password.txt
# Using --prompt=dbpass will prompt for the 'dbpass' argument
$ fin config create --dbname=testing --dbuser=fin --prompt=dbpass < password.txt
Success: Generated 'fin-config.php' file.
Gets the value of a specific constant or variable defined in fin-config.php file.
fin config get <name> [--type=<type>] [--format=<format>] [--config-file=<path>]
OPTIONS
<name>
Name of the fin-config.php constant or variable.
[--type=<type>]
Type of config value to retrieve. Defaults to 'all'.
---
default: all
options:
- constant
- variable
- all
---
[--format=<format>]
Get value in a particular format.
Dotenv is limited to non-object values.
---
default: var_export
options:
- var_export
- json
- yaml
- dotenv
---
[--config-file=<path>]
Specify the file path to the config file to be read. Defaults to the root of the
FinPress installation and the filename "fin-config.php".
EXAMPLES
# Get the table_prefix as defined in fin-config.php file.
$ fin config get table_prefix
fin_
Checks whether a specific constant or variable exists in the fin-config.php file.
fin config has <name> [--type=<type>] [--config-file=<path>]
OPTIONS
<name>
Name of the fin-config.php constant or variable.
[--type=<type>]
Type of the config value to set. Defaults to 'all'.
---
default: all
options:
- constant
- variable
- all
---
[--config-file=<path>]
Specify the file path to the config file to be checked. Defaults to the root of the
FinPress installation and the filename "fin-config.php".
EXAMPLES
# Check whether the DB_PASSWORD constant exists in the fin-config.php file.
$ fin config has DB_PASSWORD
Determines whether value of a specific defined constant or variable is truthy.
fin config is-true <name> [--type=<type>] [--config-file=<path>]
This determination is made by evaluating the retrieved value via boolval().
OPTIONS
<name>
Name of the fin-config.php constant or variable.
[--type=<type>]
Type of config value to retrieve. Defaults to 'all'.
---
default: all
options:
- constant
- variable
- all
---
[--config-file=<path>]
Specify the file path to the config file to be read. Defaults to the root of the
FinPress installation and the filename "fin-config.php".
EXAMPLES
# Assert if MULTISITE is true
$ fin config is-true MULTISITE
$ echo $?
0
Lists variables, constants, and file includes defined in fin-config.php file.
fin config list [<filter>...] [--fields=<fields>] [--format=<format>] [--strict] [--config-file=<path>]
OPTIONS
[<filter>...]
Name or partial name to filter the list by.
[--fields=<fields>]
Limit the output to specific fields. Defaults to all fields.
[--format=<format>]
Render output in a particular format.
Dotenv is limited to non-object values.
---
default: table
options:
- table
- csv
- json
- yaml
- dotenv
---
[--strict]
Enforce strict matching when a filter is provided.
[--config-file=<path>]
Specify the file path to the config file to be read. Defaults to the root of the
FinPress installation and the filename "fin-config.php".
EXAMPLES
# List constants and variables defined in fin-config.php file.
$ fin config list
+------------------+------------------------------------------------------------------+----------+
| key | value | type |
+------------------+------------------------------------------------------------------+----------+
| table_prefix | fin_ | variable |
| DB_NAME | fin_cli_test | constant |
| DB_USER | root | constant |
| DB_PASSWORD | root | constant |
| AUTH_KEY | r6+@shP1yO&$)1gdu.hl[/j;7Zrvmt~o;#WxSsa0mlQOi24j2cR,7i+QM/#7S:o^ | constant |
| SECURE_AUTH_KEY | iO-z!_m--YH$Tx2tf/&V,YW*13Z_HiRLqi)d?$o-tMdY+82pK$`T.NYW~iTLW;xp | constant |
+------------------+------------------------------------------------------------------+----------+
# List only database user and password from fin-config.php file.
$ fin config list DB_USER DB_PASSWORD --strict
+------------------+-------+----------+
| key | value | type |
+------------------+-------+----------+
| DB_USER | root | constant |
| DB_PASSWORD | root | constant |
+------------------+-------+----------+
# List all salts from fin-config.php file.
$ fin config list _SALT
+------------------+------------------------------------------------------------------+----------+
| key | value | type |
+------------------+------------------------------------------------------------------+----------+
| AUTH_SALT | n:]Xditk+_7>Qi=>BmtZHiH-6/Ecrvl(V5ceeGP:{>?;BT^=[B3-0>,~F5z$(+Q$ | constant |
| SECURE_AUTH_SALT | ?Z/p|XhDw3w}?c.z%|+BAr|(Iv*H%%U+Du&kKR y?cJOYyRVRBeB[2zF-`(>+LCC | constant |
| LOGGED_IN_SALT | +$@(1{b~Z~s}Cs>8Y]6[m6~TnoCDpE>O%e75u}&6kUH!>q:7uM4lxbB6[1pa_X,q | constant |
| NONCE_SALT | _x+F li|QL?0OSQns1_JZ{|Ix3Jleox-71km/gifnyz8kmo=w-;@AE8W,(fP<N}2 | constant |
+------------------+------------------------------------------------------------------+----------+
Gets the path to fin-config.php file.
fin config path
EXAMPLES
# Get fin-config.php file path
$ fin config path
/home/person/htdocs/project/fin-config.php
Sets the value of a specific constant or variable defined in fin-config.php file.
fin config set <name> <value> [--add] [--raw] [--anchor=<anchor>] [--placement=<placement>] [--separator=<separator>] [--type=<type>] [--config-file=<path>]
OPTIONS
<name>
Name of the fin-config.php constant or variable.
<value>
Value to set the fin-config.php constant or variable to.
[--add]
Add the value if it doesn't exist yet.
This is the default behavior, override with --no-add.
[--raw]
Place the value into the fin-config.php file as is, instead of as a quoted string.
[--anchor=<anchor>]
Anchor string where additions of new values are anchored around.
Defaults to "/* That's all, stop editing!".
The special case "EOF" string uses the end of the file as the anchor.
[--placement=<placement>]
Where to place the new values in relation to the anchor string.
---
default: 'before'
options:
- before
- after
---
[--separator=<separator>]
Separator string to put between an added value and its anchor string.
The following escape sequences will be recognized and properly interpreted: '\n' => newline, '\r' => carriage return, '\t' => tab.
Defaults to a single EOL ("\n" on *nix and "\r\n" on Windows).
[--type=<type>]
Type of the config value to set. Defaults to 'all'.
---
default: all
options:
- constant
- variable
- all
---
[--config-file=<path>]
Specify the file path to the config file to be modified. Defaults to the root of the
FinPress installation and the filename "fin-config.php".
EXAMPLES
# Set the FIN_DEBUG constant to true.
$ fin config set FIN_DEBUG true --raw
Success: Updated the constant 'FIN_DEBUG' in the 'fin-config.php' file with the raw value 'true'.
Refreshes the salts defined in the fin-config.php file.
fin config shuffle-salts [<keys>...] [--force] [--config-file=<path>] [--insecure]
OPTIONS
[<keys>...]
One ore more keys to shuffle. If none are provided, this falls back to the default FinPress Core salt keys.
[--force]
If an unknown key is requested to be shuffled, add it instead of throwing a warning.
[--config-file=<path>]
Specify the file path to the config file to be modified. Defaults to the root of the
FinPress installation and the filename "fin-config.php".
[--insecure]
Retry API download without certificate validation if TLS handshake fails. Note: This makes the request vulnerable to a MITM attack.
EXAMPLES
# Get new salts for your fin-config.php file
$ fin config shuffle-salts
Success: Shuffled the salt keys.
# Add a cache key salt to the fin-config.php file
$ fin config shuffle-salts FIN_CACHE_KEY_SALT --force
Success: Shuffled the salt keys.
This package is included with FIN-CLI itself, no additional installation necessary.
To install the latest version of this package over what's included in FIN-CLI, run:
fin package install git@github.com:fin-cli/config-command.git
We appreciate you taking the initiative to contribute to this project.
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.
For a more thorough introduction, check out FIN-CLI's guide to contributing. This package follows those policy and guidelines.
Think you’ve found a bug? We’d love for you to help us get it fixed.
Before you create a new issue, you should search existing issues to see if there’s an existing resolution to it, or if it’s already been fixed in a newer version.
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. Include as much detail as you can, and clear steps to reproduce if possible. For more guidance, review our bug report documentation.
Want to contribute a new feature? Please first open a new issue to discuss whether the feature is a good fit for the project.
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. See "Setting up" for details specific to working on this package locally.
GitHub issues aren't for general support questions, but there are other venues you can try: https://fin-cli.org/#support
This README.md is generated dynamically from the project's codebase using fin scaffold package-readme
(doc). To suggest changes, please submit a pull request against the corresponding part of the codebase.