> Staying on (obsolete) (unmaintained) CVS is also a bad idea :) > I don't have read access so fencepost:/srv/data/www-config, can you > check?
I've dumped a tarball of the Apache configs in your home directory: /home/b/beuc/gnu.www-config.tar.gz > @sysadmin: still willing to see the latest Apache configuration and as > well as update scripts including http://www.gnu.org/new-savannah- > project/new.py Please see attached for a copy of new.py Let me know if you need anything else! Thank you for contributing time to look at this :) Happy Hacking, -- ~Lisa Marie Maginnis Senior System Administrator Free Software Foundation http://fsf.org http://gnu.org GPG Key: 61EEC710
import os,sys import string from mod_python import apache, util from syslog import * import stat # baughj, 2007.07.06 - add logging, usage of subprocess # baughj, 2007.07.16 - make sure to chgrp/chmod checked out directory so that # it can be updated by wwwcvs user later - why doesn't everything (cron job, # etc) run as one user? # add new 'translation' type for translation team webspace, see RT #348523. # ward, 2008-08-18 # Stripped out actual cvs update, this script now just requests an update. # See /usr/local/bin/update-cvs.sh for the actual cvs update code (and that # script is run from cron) # ward, 2012-09-26 CHECKOUT = "/var/www/savannah-checkouts/" LOGFILE = "/var/log/wwwcvs/new-savannah-project.log" def touch(fname, times=None): with file(fname, 'a'): os.utime(fname, times) os.chmod(fname, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH) def request_update (type, project=''): if type == 'www': touch('/usr/local/to-update/www') syslog(LOG_INFO, "Update requested for type: %s" % type) return touch('/usr/local/to-update/%s___%s' % (type, project)) syslog(LOG_INFO, "Update requested for type: %s (project %s)" % (type,project)) return def handler (req): openlog('savannah-update', 0, LOG_LOCAL6) form = util.FieldStorage (req) req.content_type = 'text/html' req.send_http_header () type = None project = None if form.has_key('type'): type = form['type'] if form.has_key('project'): project = form['project'] if (type == 'www'): request_update('www') req.content_type = 'text/html' req.send_http_header () return apache.OK if not (type and project): syslog(LOG_ERR, 'Error: missing type or project. Aborting.') return apache.HTTP_NOT_FOUND if (type != 'gnu') and (type != 'non-gnu') and (type != 'translations'): syslog(LOG_ERR, "Error: Type unknown, was %s. Aborting." % type) return apache.HTTP_NOT_FOUND if string.find (project, "/") != -1: syslog(LOG_ERR, "Error: / found in project name %s" % project) return apache.HTTP_NOT_FOUND request_update(type,project) req.content_type = 'text/html' req.send_http_header () return apache.OK