Skip to content

Commit

Permalink
add --env option to set defaults from environment variables in the cl…
Browse files Browse the repository at this point in the history
…i frontend
  • Loading branch information
ssato committed Apr 23, 2015
1 parent bb51d0a commit ea8c3d0
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions anyconfig/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import locale
import logging
import optparse
import os
import sys


Expand Down Expand Up @@ -68,7 +69,7 @@ def option_parser(defaults=None, usage=USAGE):
"""
defaults = dict(loglevel=1, list=False, output=None, itype=None,
otype=None, atype=None, merge=A.MS_DICTS,
ignore_missing=False, template=False)
ignore_missing=False, template=False, env=False)

ctypes = A.list_types()
ctypes_s = ", ".join(ctypes)
Expand Down Expand Up @@ -117,6 +118,9 @@ def option_parser(defaults=None, usage=USAGE):
help="Ignore missing input files")
parser.add_option("", "--template", action="store_true",
help="Enable template config support")
parser.add_option("", "--env", action="store_true",
help="Load configuration defaults from "
"environment values")

parser.add_option("-s", "--silent", action="store_const", dest="loglevel",
const=0, help="Silent or quiet mode")
Expand Down Expand Up @@ -147,8 +151,10 @@ def main(argv=sys.argv):
parser.print_usage()
sys.exit(-1)

data = A.load(args, options.itype, ignore_missing=options.ignore_missing,
data = data = os.environ.copy() if options.env else A.container()
diff = A.load(args, options.itype, ignore_missing=options.ignore_missing,
merge=options.merge, ac_template=options.template)
data.update(diff)

if options.args:
diff = A.loads(options.args, options.atype,
Expand Down

0 comments on commit ea8c3d0

Please sign in to comment.