66
77import mamonsu .lib .platform as platform
88from mamonsu .lib .parser import MissOptsParser
9+ from mamonsu .lib .config import Config
910from mamonsu .plugins .pgsql .driver .checks import is_conn_to_db
1011from mamonsu import __version__ as mamonsu_version
1112from mamonsu .lib .default_config import DefaultConfig
1213from mamonsu .plugins .pgsql .pool import Pooler
1314from mamonsu .tools .bootstrap .sql import CreateMamonsuUserSQL , CreateSchemaExtensionSQL , \
14- CreateSchemaDefaultSQL ,GrantsOnDefaultSchemaSQL , GrantsOnExtensionSchemaSQL , QuerySplit
15+ CreateSchemaDefaultSQL , GrantsOnDefaultSchemaSQL , GrantsOnExtensionSchemaSQL , QuerySplit
1516
1617
1718class Args (DefaultConfig ):
@@ -67,9 +68,13 @@ def __init__(self):
6768 action = 'store_true' ,
6869 dest = 'create_extensions' ,
6970 help = 'create pg_buffercache extension in mamonsu schema' )
71+ bootstrap_group .add_option (
72+ '-c' , '--config' ,
73+ dest = 'config' ,
74+ default = DefaultConfig .default_config_path (),
75+ help = optparse .SUPPRESS_HELP )
7076 parser .add_option_group (group )
7177 parser .add_option_group (bootstrap_group )
72-
7378 self .args , commands = parser .parse_args ()
7479 if len (commands ) > 0 :
7580 if len (commands ) == 1 :
@@ -78,12 +83,14 @@ def __init__(self):
7883 parser .print_help ()
7984 sys .exit (1 )
8085 if self .args .dbname is None :
81- sys .stderr .write ("ERROR: Database for mamonsu is not specified\n " )
82- parser .print_bootstrap_help ()
83- sys .exit (1 )
84-
85- if not self .args .dbname :
86- self .args .dbname = self .args .username
86+ try :
87+ cfg = Config (self .args .config )
88+ self .args .dbname = cfg .fetch ('postgres' , 'database' )
89+ except Exception as e :
90+ sys .stderr .write ("ERROR: Database for mamonsu is not specified\n " )
91+ sys .stderr .write ("{0}\n " .format (e ))
92+ parser .print_bootstrap_help ()
93+ sys .exit (1 )
8794
8895 # apply env
8996 os .environ ['PGUSER' ] = self .args .username
0 commit comments