chiark / gitweb /
Import release 0.1.4
[secnet.git] / make-secnet-sites.py
index 8a6433875ad0e11d7f12cf4ee3ae3d8dc562796a..8479aaa0f9554841dfe1c8625f6aa9d0fd6e85d0 100755 (executable)
@@ -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)