6
6
7
7
import mamonsu .lib .platform as platform
8
8
from mamonsu .lib .parser import MissOptsParser
9
+ from mamonsu .lib .config import Config
9
10
from mamonsu .plugins .pgsql .driver .checks import is_conn_to_db
10
11
from mamonsu import __version__ as mamonsu_version
11
12
from mamonsu .lib .default_config import DefaultConfig
12
13
from mamonsu .plugins .pgsql .pool import Pooler
13
14
from mamonsu .tools .bootstrap .sql import CreateMamonsuUserSQL , CreateSchemaExtensionSQL , \
14
- CreateSchemaDefaultSQL ,GrantsOnDefaultSchemaSQL , GrantsOnExtensionSchemaSQL , QuerySplit
15
+ CreateSchemaDefaultSQL , GrantsOnDefaultSchemaSQL , GrantsOnExtensionSchemaSQL , QuerySplit
15
16
16
17
17
18
class Args (DefaultConfig ):
@@ -67,9 +68,13 @@ def __init__(self):
67
68
action = 'store_true' ,
68
69
dest = 'create_extensions' ,
69
70
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 )
70
76
parser .add_option_group (group )
71
77
parser .add_option_group (bootstrap_group )
72
-
73
78
self .args , commands = parser .parse_args ()
74
79
if len (commands ) > 0 :
75
80
if len (commands ) == 1 :
@@ -78,12 +83,14 @@ def __init__(self):
78
83
parser .print_help ()
79
84
sys .exit (1 )
80
85
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 )
87
94
88
95
# apply env
89
96
os .environ ['PGUSER' ] = self .args .username
0 commit comments