Commit baa9d96
epriestley
Increase the power of
Summary:
Fixes T2254. Make the CLI for config more powerful:
- Add validation for `set`.
- Add `get`.
- Add `list`.
- Add `delete`.
The `get` command produces fairly verbose JSON to support flags like `--all`, or `--source database` later. The other commands are straightforward.
Test Plan:
Tested `config set`:
$ ./bin/config set
Usage Exception: Specify a configuration key and a value to set it to.
$ ./bin/config set x
Usage Exception: Specify a value to set the key 'x' to.
$ ./bin/config set phabricator.base-uri
Usage Exception: Specify a value to set the key 'phabricator.base-uri' to.
$ ./bin/config set phabricator.base-uri x
Usage Exception: Config option 'phabricator.base-uri' is invalid. The URI must start with 'http://' or 'https://'.
$ ./bin/config set phabricator.base-uri http://x
Usage Exception: Config option 'phabricator.base-uri' is invalid. The URI must contain a dot ('.'), like 'http://example.com/', not just a bare name like 'http://example/'. Some web browsers will not set cookies on domains with no TLD.
$ ./bin/config set phabricator.base-uri http://x.com
Set 'phabricator.base-uri' in local configuration.
$
Tested `config get`:
$ ./bin/config get pygments.enabled
{
"config" : []
}
$ ./bin/config set pygments.enabled true
Set 'pygments.enabled' in local configuration.
$ ./bin/config get pygments.enabled
{
"config" : [
{
"key" : "pygments.enabled",
"source" : "local",
"value" : true
}
]
}
$
Tested `config delete`:
$ ./bin/config delete
Usage Exception: Specify a configuration key to delete.
$ ./bin/config delete x x
Usage Exception: Too many arguments: expected one key.
$ ./bin/config delete x
Usage Exception: No such configuration key 'x'! Use `config list` to list all keys.
$ ./bin/config delete pygments.enabled
Deleted 'pygments.enabled' from local configuration.
$ ./bin/config delete pygments.enabled
Usage Exception: Configuration key 'pygments.enabled' is not set in local configuration!
$
Tested `config list`:
$ ./bin/config list
account.editable
account.minimum-password-length
amazon-ec2.access-key
amazon-ec2.secret-key
amazon-s3.access-key
amazon-s3.endpoint
amazon-s3.secret-key
amazon-ses.access-key
amazon-ses.secret-key
aphront.default-application-configuration-class
audit.can-author-close-audit
auth.email-domains
auth.login-message
auth.password-auth-enabled
auth.require-email-verification
auth.sessions.conduit
auth.sessions.web
auth.sshkeys.enabled
cache.enable-deflate
celerity.force-disk-reads
celerity.minify
celerity.resource-hash
celerity.resource-path
config.hide
config.lock
config.mask
controller.oauth-registration
darkconsole.always-on
darkconsole.enabled
debug.profile-rate
debug.stop-on-redirect
differential.allow-reopen
differential.allow-self-accept
differential.always-allow-close
differential.anonymous-access
differential.custom-remarkup-block-rules
differential.custom-remarkup-rules
differential.days-fresh
differential.days-stale
differential.enable-email-accept
differential.expose-emails-prudently
differential.field-selector
differential.generated-paths
differential.require-test-plan-field
differential.revision-custom-detail-renderer
differential.show-host-field
differential.show-test-plan-field
differential.whitespace-matters
disqus.application-id
disqus.application-secret
disqus.auth-enabled
disqus.auth-permanent
disqus.registration-enabled
disqus.shortname
environment.append-paths
events.listeners
facebook.application-id
facebook.application-secret
facebook.auth-enabled
facebook.auth-permanent
facebook.registration-enabled
facebook.require-https-auth
feed.http-hooks
feed.public
files.image-mime-types
files.viewable-mime-types
gcdaemon.ttl.daemon-logs
gcdaemon.ttl.differential-parse-cache
gcdaemon.ttl.general-cache
gcdaemon.ttl.herald-transcripts
gcdaemon.ttl.markup-cache
gcdaemon.ttl.task-archive
github.application-id
github.application-secret
github.auth-enabled
github.auth-permanent
github.registration-enabled
google.application-id
google.application-secret
google.auth-enabled
google.auth-permanent
google.registration-enabled
ldap.activedirectory_domain
ldap.anonymous-user-name
ldap.anonymous-user-password
ldap.auth-enabled
ldap.base_dn
ldap.hostname
ldap.port
ldap.real_name_attributes
ldap.referrals
ldap.search-first
ldap.search_attribute
ldap.start-tls
ldap.username-attribute
ldap.version
load-libraries
log.access.format
log.access.path
maniphest.custom-fields
maniphest.custom-task-extensions-class
maniphest.default-priority
maniphest.enabled
metamta.can-send-as-user
metamta.default-address
metamta.differential.attach-patches
metamta.differential.inline-patches
metamta.differential.patch-format
metamta.differential.reply-handler
metamta.differential.reply-handler-domain
metamta.differential.subject-prefix
metamta.differential.unified-comment-context
metamta.diffusion.attach-patches
metamta.diffusion.byte-limit
metamta.diffusion.inline-patches
metamta.diffusion.reply-handler
metamta.diffusion.reply-handler-domain
metamta.diffusion.subject-prefix
metamta.diffusion.time-limit
metamta.domain
metamta.herald.show-hints
metamta.insecure-auth-with-reply-to
metamta.macro.reply-handler-domain
metamta.macro.subject-prefix
metamta.mail-adapter
metamta.maniphest.default-public-author
metamta.maniphest.public-create-email
metamta.maniphest.reply-handler
metamta.maniphest.reply-handler-domain
metamta.maniphest.subject-prefix
metamta.one-mail-per-recipient
metamta.package.reply-handler
metamta.package.subject-prefix
metamta.pholio.reply-handler-domain
metamta.pholio.subject-prefix
metamta.placeholder-to-recipient
metamta.precedence-bulk
metamta.public-replies
metamta.re-prefix
metamta.recipients.show-hints
metamta.reply.show-hints
metamta.send-immediately
metamta.single-reply-handler-prefix
metamta.user-address-format
metamta.vary-subjects
mysql.configuration-provider
mysql.host
mysql.implementation
mysql.pass
mysql.user
notification.client-uri
notification.debug
notification.enabled
notification.log
notification.pidfile
notification.server-uri
notification.user
phabricator.application-id
phabricator.application-secret
phabricator.auth-enabled
phabricator.auth-permanent
phabricator.base-uri
phabricator.csrf-key
phabricator.env
phabricator.mail-key
phabricator.oauth-uri
phabricator.production-uri
phabricator.registration-enabled
phabricator.serious-business
phabricator.setup
phabricator.show-beta-applications
phabricator.show-error-callout
phabricator.show-stack-traces
phabricator.timezone
phame.skins
phd.log-directory
phd.pid-directory
phd.start-taskmasters
phd.trace
phd.verbose
phid.external-loaders
phpmailer.mailer
phpmailer.smtp-host
phpmailer.smtp-password
phpmailer.smtp-port
phpmailer.smtp-protocol
phpmailer.smtp-user
phriction.enabled
policy.allow-public
pygments.dropdown-choices
pygments.enabled
recaptcha.enabled
recaptcha.private-key
recaptcha.public-key
remarkup.enable-embedded-youtube
repository.default-local-path
search.elastic.host
search.engine-selector
security.alternate-file-domain
security.hmac-key
security.require-https
sendgrid.api-key
sendgrid.api-user
storage.default-namespace
storage.engine-selector
storage.local-disk.path
storage.mysql-engine.max-size
storage.s3.bucket
storage.upload-size-limit
style.monospace
syntax-highlighter.engine
syntax.filemap
test.value
tokenizer.ondemand
translation.override
translation.provider
uri.allowed-protocols
$
Reviewers: btrahan, codeblock
Reviewed By: btrahan
CC: aran
Maniphest Tasks: T2254
Differential Revision: https://secure.phabricator.com/D4570bin/config
1 parent 08e61c6 commit baa9d96
File tree
9 files changed
+254
-53
lines changed- scripts/setup
- src
- applications/config/management
- infrastructure/env
- management
9 files changed
+254
-53
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
| 20 | + | |
| 21 | + | |
19 | 22 | | |
20 | 23 | | |
21 | 24 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
719 | 719 | | |
720 | 720 | | |
721 | 721 | | |
722 | | - | |
723 | | - | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
724 | 727 | | |
725 | 728 | | |
726 | 729 | | |
| |||
2117 | 2120 | | |
2118 | 2121 | | |
2119 | 2122 | | |
| 2123 | + | |
| 2124 | + | |
| 2125 | + | |
2120 | 2126 | | |
2121 | 2127 | | |
2122 | 2128 | | |
| |||
Lines changed: 56 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
Lines changed: 62 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
Lines changed: 25 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
Lines changed: 99 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
Lines changed: 0 additions & 50 deletions
This file was deleted.
0 commit comments