X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=make-secnet-sites.py;h=8479aaa0f9554841dfe1c8625f6aa9d0fd6e85d0;hp=8a6433875ad0e11d7f12cf4ee3ae3d8dc562796a;hb=08f344d3bdffe4bb83b47b5e2d53758ce231ebc4;hpb=3454dce4c6909648b711a59b57c5a527036b2a8e;ds=sidebyside diff --git a/make-secnet-sites.py b/make-secnet-sites.py index 8a64338..8479aaa 100755 --- a/make-secnet-sites.py +++ b/make-secnet-sites.py @@ -42,7 +42,7 @@ reset no-disconnect-hup no-suppress-args cd ~/secnet/sites-test/ -execute ~/secnet/secnet/make-secnet-sites.py -u vpnheader groupfiles sites +execute ~/secnet/make-secnet-sites.py -u vpnheader groupfiles sites This program is part of secnet. It relies on the "ipaddr" library from Cendio Systems AB. @@ -55,7 +55,7 @@ import sys import os import ipaddr -VERSION="0.1.3" +VERSION="0.1.4" class vpn: def __init__(self,name): @@ -146,7 +146,7 @@ class mobileoption: def __init__(self,w): self.w=w def out(self): - return 'netlink-options "soft";' + return '# netlink-options "soft";' def complain(msg): global complaints @@ -385,8 +385,9 @@ else: print "caller not in group %s"%group sys.exit(1) f=open(header) - pfile(header,f.readlines()) + headerinput=f.readlines() f.close() + pfile(header,headerinput) userinput=sys.stdin.readlines() pfile("user input",userinput) else: @@ -456,14 +457,29 @@ if complaints>0: if service: # Put the user's input into their group file, and rebuild the main # sites file - f=open(groupfiledir+"-tmp/"+group,'w') + f=open(groupfiledir+"/T"+group,'w') f.write("# Section submitted by user %s, %s\n"% (user,time.asctime(time.localtime(time.time())))) f.write("# Checked by make-secnet-sites.py version %s\n\n"%VERSION) for i in userinput: f.write(i) f.write("\n") f.close() - os.rename(groupfiledir+"-tmp/"+group,groupfiledir+"/"+group) - # XXX rebuild main sites file! + os.rename(groupfiledir+"/T"+group,groupfiledir+"/R"+group) + f=open(sitesfile+"-tmp",'w') + f.write("# sites file autogenerated by make-secnet-sites.py\n") + f.write("# generated %s, invoked by %s\n"% + (time.asctime(time.localtime(time.time())),user)) + f.write("# use make-secnet-sites.py to turn this file into a\n") + f.write("# valid /etc/secnet/sites.conf file\n\n") + for i in headerinput: f.write(i) + files=os.listdir(groupfiledir) + for i in files: + if i[0]=='R': + j=open(groupfiledir+"/"+i) + f.write(j.read()) + j.close() + f.write("# end of sites file\n") + f.close() + os.rename(sitesfile+"-tmp",sitesfile) else: outputsites(of)