checkConfig.py
160 lines
| 5.1 KiB
| text/x-python
|
PythonLexer
r0 | """checkConfig.py verifies madrigal.cfg has been edited where needed | |||
Also verifies siteTab.txt has this siteid | ||||
$Id: checkConfig.py 7337 2021-03-26 14:10:17Z brideout $ | ||||
""" | ||||
# standard python imports | ||||
import os, sys, os.path | ||||
import shutil | ||||
# first step is to copy metadata files over that do not already exist | ||||
# siteTab.txt | ||||
if not os.access("metadata/siteTab.txt", os.R_OK): | ||||
shutil.copy("metadata/siteTab.txt.original", "metadata/siteTab.txt") | ||||
print("Copied siteTab.txt.original to siteTab.txt") | ||||
else: | ||||
print("siteTab.txt already exists - new version ignored. May be updated by updatedMaster later.") | ||||
# instTab.txt | ||||
if not os.access("metadata/instTab.txt", os.R_OK): | ||||
shutil.copy("metadata/instTab.txt.original", "metadata/instTab.txt") | ||||
print("Copied instTab.txt.original to instTab.txt") | ||||
else: | ||||
print("instTab.txt already exists - new version ignored. May be updated by updatedMaster later.") | ||||
# instType.txt | ||||
if not os.access("metadata/instType.txt", os.R_OK): | ||||
shutil.copy("metadata/instType.txt.original", "metadata/instType.txt") | ||||
print("Copied instType.txt.original to instType.txt") | ||||
else: | ||||
print("instType.txt already exists - new version ignored. May be updated by updatedMaster later.") | ||||
# typeTab.txt | ||||
if not os.access("metadata/typeTab.txt", os.R_OK): | ||||
shutil.copy("metadata/typeTab.txt.original", "metadata/typeTab.txt") | ||||
print("Copied typeTab.txt.original to typeTab.txt") | ||||
else: | ||||
print("typeTab.txt already exists - new version ignored. May be updated by updatedMaster later.") | ||||
# lines im madrigal.cfg required to be verified | ||||
MADROOT_test = False | ||||
MADSERVER_test = False | ||||
MADSERVERROOT_test = False | ||||
SITEID_test = False | ||||
HTMLSTYLE_test = False | ||||
INDEXHEAD_test = False | ||||
CONTACT_test = False | ||||
pwd = os.getcwd() | ||||
f = open('madrigal.cfg') | ||||
lines = f.readlines() | ||||
f.close() | ||||
for line in lines: | ||||
# MADROOT check | ||||
if line[0:9] == "MADROOT =": | ||||
MADROOT = line[9:].strip() | ||||
MADROOT_test = True | ||||
if MADROOT != pwd: | ||||
print("MADROOT in madrigal.cfg is $MADROOT, but PWD is %s" % (pwd)) | ||||
print("Fix madrigal.cfg before trying installation again") | ||||
sys.exit(-1) | ||||
# MADSERVER check | ||||
elif line[0:11] == "MADSERVER =": | ||||
MADSERVER = line[11:].strip() | ||||
MADSERVER_test = True | ||||
if MADSERVER.find('invalid') != -1: | ||||
print("madrigal.cfg MADSERVER entry must be edited - cannot be %s" % (MADSERVER)) | ||||
print("Fix madrigal.cfg before trying installation again") | ||||
sys.exit(-1) | ||||
# MADSERVERROOT check | ||||
elif line[0:15] == "MADSERVERROOT =": | ||||
MADSERVERROOT = line[15:].strip() | ||||
MADSERVERROOT_test = True | ||||
# SITEID check | ||||
elif line[0:8] == "SITEID =": | ||||
SITEID = line[8:].strip() | ||||
SITEID_test = True | ||||
if SITEID.find('99999') != -1: | ||||
print("madrigal.cfg SITEID entry must be edited - cannot be 99999") | ||||
print("Fix madrigal.cfg before trying installation again") | ||||
sys.exit(-1) | ||||
# HTMLSTYLE check | ||||
elif line[0:11] == "HTMLSTYLE =": | ||||
HTMLSTYLE = line[11:].strip() | ||||
HTMLSTYLE_test = True | ||||
# INDEXHEAD check | ||||
elif line[0:11] == "INDEXHEAD =": | ||||
INDEXHEAD = line[11:].strip() | ||||
INDEXHEAD_test = True | ||||
if INDEXHEAD.find('CHANGEME') != -1: | ||||
print("madrigal.cfg INDEXHEAD entry must be edited - cannot include CHANGEME") | ||||
print("Fix madrigal.cfg before trying installation again") | ||||
sys.exit(-1) | ||||
# CONTACT check | ||||
elif line[0:9] == "CONTACT =": | ||||
CONTACT = line[9:].strip() | ||||
CONTACT_test = True | ||||
if CONTACT.find('CHANGEME') != -1: | ||||
print("madrigal.cfg CONTACT entry must be edited - cannot include CHANGEME") | ||||
print("Fix madrigal.cfg before trying installation again") | ||||
sys.exit(-1) | ||||
# check that all lines were verified | ||||
if not MADROOT_test: | ||||
print("madrigal.cfg does not contain required variable MADROOT") | ||||
sys.exit(-1) | ||||
elif not MADSERVER_test: | ||||
print("madrigal.cfg does not contain required variable MADSERVER") | ||||
sys.exit(-1) | ||||
elif not MADSERVERROOT_test: | ||||
print("madrigal.cfg does not contain required variable MADSERVERROOT") | ||||
sys.exit(-1) | ||||
elif not SITEID_test: | ||||
print("madrigal.cfg does not contain required variable SITEID") | ||||
sys.exit(-1) | ||||
elif not HTMLSTYLE_test: | ||||
print("madrigal.cfg does not contain required variable HTMLSTYLE") | ||||
sys.exit(-1) | ||||
elif not INDEXHEAD_test: | ||||
print("madrigal.cfg does not contain required variable INDEXHEAD") | ||||
sys.exit(-1) | ||||
elif not CONTACT_test: | ||||
print("madrigal.cfg does not contain required variable CONTACT") | ||||
sys.exit(-1) | ||||
# now verify that metadata/siteTab.txt has matching entry | ||||
SITEID_OKAY = False | ||||
f = open('metadata/siteTab.txt') | ||||
lines = f.readlines() | ||||
f.close() | ||||
for line in lines: | ||||
items = line.split(',') | ||||
if len(items) < 3: | ||||
continue | ||||
if items[0] == SITEID: | ||||
SITEID_OKAY = True | ||||
break | ||||
if not SITEID_OKAY: | ||||
print("siteTab.txt does not contain an entry for site id %s" % (SITEID)) | ||||
print("Edit metadata/siteTab.txt before trying installation again") | ||||
sys.exit(-1) | ||||