@@ -21,26 +21,41 @@ function config ( ) {
2121
2222 env . version = software . version ;
2323 env . name = software . name ;
24- env . DISPLAY_UNITS = process . env . DISPLAY_UNITS || 'mg/dl' ;
25- env . PORT = process . env . PORT || 1337 ;
26- env . mongo = process . env . MONGO_CONNECTION || process . env . CUSTOMCONNSTR_mongo ;
27- env . mongo_collection = process . env . CUSTOMCONNSTR_mongo_collection || 'entries' ;
28- env . settings_collection = process . env . CUSTOMCONNSTR_mongo_settings_collection || 'settings' ;
24+
25+ env . DISPLAY_UNITS = readENV ( 'DISPLAY_UNITS' , 'mg/dl' ) ;
26+ env . PORT = readENV ( 'PORT' , 1337 ) ;
27+ env . mongo = readENV ( 'MONGO_CONNECTION' ) || readENV ( 'MONGO' ) || readENV ( 'MONGOLAB_URI' ) ;
28+ env . mongo_collection = readENV ( 'MONGO_COLLECTION' , 'entries' ) ;
29+ env . settings_collection = readENV ( 'MONGO_SETTINGS_COLLECTION' , 'settings' ) ;
30+ env . treatments_collection = readENV ( 'MONGO_TREATMENTS_COLLECTION' , 'treatments' ) ;
31+ env . devicestatus_collection = readENV ( 'MONGO_DEVICESTATUS_COLLECTION' , 'devicestatus' ) ;
32+
33+ env . enable = readENV ( 'ENABLE' ) ;
34+
2935 var shasum = crypto . createHash ( 'sha1' ) ;
30- var useSecret = ( process . env . API_SECRET && process . env . API_SECRET . length > 0 ) ;
36+
37+ /////////////////////////////////////////////////////////////////
38+ // A little ugly, but we don't want to read the secret into a var
39+ /////////////////////////////////////////////////////////////////
40+ var useSecret = ( readENV ( 'API_SECRET' ) && readENV ( 'API_SECRET' ) . length > 0 ) ;
3141 env . api_secret = null ;
3242 // if a passphrase was provided, get the hex digest to mint a single token
3343 if ( useSecret ) {
34- if ( process . env . API_SECRET . length < consts . MIN_PASSPHRASE_LENGTH ) {
44+ if ( readENV ( ' API_SECRET' ) . length < consts . MIN_PASSPHRASE_LENGTH ) {
3545 var msg = [ "API_SECRET should be at least" , consts . MIN_PASSPHRASE_LENGTH , "characters" ] ;
3646 var err = new Error ( msg . join ( ' ' ) ) ;
3747 // console.error(err);
3848 throw err ;
3949 process . exit ( 1 ) ;
4050 }
41- shasum . update ( process . env . API_SECRET ) ;
51+ shasum . update ( readENV ( ' API_SECRET' ) ) ;
4252 env . api_secret = shasum . digest ( 'hex' ) ;
4353 }
54+
55+ // For pushing notifications to Pushover.
56+ env . pushover_api_token = readENV ( 'PUSHOVER_API_TOKEN' ) ;
57+ env . pushover_user_key = readENV ( 'PUSHOVER_USER_KEY' ) || readENV ( 'PUSHOVER_GROUP_KEY' ) ;
58+
4459 // TODO: clean up a bit
4560 // Some people prefer to use a json configuration file instead.
4661 // This allows a provided json config to override environment variables
@@ -51,8 +66,19 @@ function config ( ) {
5166 env . mongo = DB_URL ;
5267 env . mongo_collection = DB_COLLECTION ;
5368 env . settings_collection = DB_SETTINGS_COLLECTION ;
54- var STATIC_FILES = __dirname + '/static/' ;
55- env . static_files = process . env . NIGHTSCOUT_STATIC_FILES || STATIC_FILES ;
69+ env . static_files = readENV ( 'NIGHTSCOUT_STATIC_FILES' , __dirname + '/static/' ) ;
70+
5671 return env ;
5772}
73+
74+ function readENV ( varName , defaultValue ) {
75+ //for some reason Azure uses this prefix, maybe there is a good reason
76+ var value = process . env [ 'CUSTOMCONNSTR_' + varName ]
77+ || process . env [ 'CUSTOMCONNSTR_' + varName . toLowerCase ( ) ]
78+ || process . env [ varName ]
79+ || process . env [ varName . toLowerCase ( ) ] ;
80+
81+ return value || defaultValue ;
82+ }
83+
5884module . exports = config ;
0 commit comments