Files
templates-parser/regtests/makevar.py
Pascal Obry 907be0c2e1 Disable tests using XML/Ada if support not found.
If TP_XMLADA is on the environment use it, this is the case when
using "make test" otherwise if testsuite.py is called directly
reads the variables from ../makefile.setup.

Fixes two recent regressions.

TN eng/toolchain/templates-parser#6
2025-01-29 17:43:15 +01:00

62 lines
2.1 KiB
Python

#
# Ada Web Server
#
# Copyright (C) 2009-2012, AdaCore
#
# This is free software; you can redistribute it and/or modify it
# under terms of the GNU General Public License as published by the
# Free Software Foundation; either version 3, or (at your option) any
# later version. This software is distributed in the hope that it will
# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# distributed with this software; see file COPYING3. If not, go
# to http://www.gnu.org/licenses for a complete copy of the license.
import sys
comment_character = '#'
kv_sep = '='
class MakeVar:
"""Simple makefile variable parser."""
def __init__(self, config_file=None):
self.config_file = config_file
self.keys = [] # config keys
self.config = {} # key/value dictionary
config_file = open(self.config_file)
lines = (line.strip() for line in config_file)
# remove blanks lines
lines = (line for line in lines if line)
# parse key=value, skip comment lines
for item in lines:
if item.strip()[0] != comment_character:
name, value = item.split(kv_sep, 1)
# add to config dict and keys list
self.config[name.strip()] = value.strip()
self.keys.append(name.strip())
config_file.close()
def get(self, key, value="", equal="", notequal=""):
"""Returns the value associated with key if value not set.
Returns equal if the value associated with key is value
and notequal otherwise"""
if key in self.keys:
if value == "":
return self.config[key]
else:
if self.config[key] == value:
return equal
else:
return notequal
else:
return notequal