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/
 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.
 
 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
 
 import os
 import ipaddr
 
-VERSION="0.1.3"
+VERSION="0.1.4"
 
 class vpn:
        def __init__(self,name):
 
 class vpn:
        def __init__(self,name):
@@ -146,7 +146,7 @@ class mobileoption:
        def __init__(self,w):
                self.w=w
        def out(self):
        def __init__(self,w):
                self.w=w
        def out(self):
-               return 'netlink-options "soft";'
+               return 'netlink-options "soft";'
 
 def complain(msg):
        global complaints
 
 def complain(msg):
        global complaints
@@ -385,8 +385,9 @@ else:
                        print "caller not in group %s"%group
                        sys.exit(1)
                f=open(header)
                        print "caller not in group %s"%group
                        sys.exit(1)
                f=open(header)
-               pfile(header,f.readlines())
+               headerinput=f.readlines()
                f.close()
                f.close()
+               pfile(header,headerinput)
                userinput=sys.stdin.readlines()
                pfile("user input",userinput)
        else:
                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
 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()
        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)
 else:
        outputsites(of)