Add option to the installer for uid/gid starting numbers.

This also adds a new option to the template system. If you include
eval(string) in a file that goes through the templater then the
string in the eval will be evaluated by the Python interpreter. This is
used so one can do $UIDSTART+1. If any errors occur during the evaluation
the original string is is returned, eval() and all so it is up to the
developer to make sure the evaluation passes.

The default value for uid and gid is now a random value between
1,000,000 and (2^31 - 1,000,000)
This commit is contained in:
Rob Crittenden
2009-08-27 14:12:55 -04:00
parent cab5525076
commit 559c76f761
6 changed files with 37 additions and 11 deletions

View File

@@ -68,7 +68,15 @@ def realm_to_suffix(realm_name):
return ",".join(terms)
def template_str(txt, vars):
return string.Template(txt).substitute(vars)
val = string.Template(txt).substitute(vars)
# eval() is a special string one can insert into a template to have the
# Python interpreter evaluate the string. This is intended to allow
# math to be performed in templates.
pattern = re.compile('(eval\s*\(([^()]*)\))')
val = pattern.sub(lambda x: str(eval(x.group(2))), val)
return val
def template_file(infilename, vars):
txt = open(infilename).read()