90 lines
4.1 KiB
Python
90 lines
4.1 KiB
Python
#/*
|
|
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
|
# * contributor license agreements. See the NOTICE file distributed with
|
|
# * this work for additional information regarding copyright ownership.
|
|
# * The OpenAirInterface Software Alliance licenses this file to You under
|
|
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
|
# * except in compliance with the License.
|
|
# * You may obtain a copy of the License at
|
|
# *
|
|
# * http://www.openairinterface.org/?page_id=698
|
|
# *
|
|
# * Unless required by applicable law or agreed to in writing, software
|
|
# * distributed under the License is distributed on an "AS IS" BASIS,
|
|
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# * See the License for the specific language governing permissions and
|
|
# * limitations under the License.
|
|
# *-------------------------------------------------------------------------------
|
|
# * For more information about the OpenAirInterface (OAI) Software Alliance:
|
|
# * contact@openairinterface.org
|
|
# */
|
|
#---------------------------------------------------------------------
|
|
|
|
#-----------------------------------------------------------
|
|
# Import
|
|
#-----------------------------------------------------------
|
|
import re
|
|
import yaml
|
|
import os
|
|
import sys
|
|
|
|
|
|
def main():
|
|
#read yaml input parameters
|
|
f = open(f'{sys.argv[1]}',)
|
|
data = yaml.full_load(f)
|
|
dir = os.listdir(f'{data[0]["paths"]["source_dir"]}')
|
|
|
|
|
|
#identify configs, read and replace corresponding values
|
|
for config in data[1]["configurations"]:
|
|
filePrefix = config["filePrefix"]
|
|
outputfilename = config["outputfilename"]
|
|
for inputfile in dir:
|
|
if inputfile.find(filePrefix) >=0:
|
|
prefix_outputfile = {"cu": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
|
|
"du": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
|
|
"rru.fdd": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
|
|
"rru.tdd": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
|
|
"enb.band7.tm1.25PRB.usrpb210": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
|
|
"enb.band40.tm1.25PRB.FairScheduler.usrpb210": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}',
|
|
"rcc.band7.tm1.nfapi": f'{data[0]["paths"]["dest_dir"]}/{outputfilename}'
|
|
}
|
|
if filePrefix in prefix_outputfile:
|
|
outputfile1 = prefix_outputfile[filePrefix]
|
|
|
|
directory = f'{data[0]["paths"]["dest_dir"]}'
|
|
if not os.path.exists(directory):
|
|
os.makedirs(directory, exist_ok=True)
|
|
|
|
with open(f'{data[0]["paths"]["source_dir"]}{inputfile}', mode='r') as inputfile, \
|
|
open(outputfile1, mode='w') as outputfile:
|
|
for line in inputfile:
|
|
count = 0
|
|
for key in config["config"]:
|
|
if line.find(key["key"]) >= 0:
|
|
count += 1
|
|
if re.search(r'preference', line):
|
|
templine = line
|
|
elif re.search(r'plmn_list', line):
|
|
templine = re.sub(r'[0-9]+', '""', line)
|
|
templine = re.sub(r'\"\"', key["env"]["mcc"], templine, 1)
|
|
templine = re.sub(r'\"\"', key["env"]["mnc"], templine, 1)
|
|
templine = re.sub(r'\"\"', key["env"]["mnc_length"], templine, 1)
|
|
elif re.search('downlink_frequency', line):
|
|
templine = re.sub(r'[0-9]+', key["env"], line)
|
|
elif re.search('uplink_frequency_offset', line):
|
|
templine = re.sub(r'[0-9]+', key["env"], line)
|
|
|
|
elif re.search(r'"(.*?)"', line):
|
|
templine = re.sub(r'(?<=")[^"]*(?=")', key["env"], line)
|
|
elif re.search(r'[0-9]', line):
|
|
templine = re.sub(r'\d+', key["env"], line)
|
|
outputfile.write(templine)
|
|
|
|
if count == 0:
|
|
outputfile.write(line)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|