#!/usr/bin/env python
# Various different sanity checks
-# Copyright (C) 2000, 2001, 2002, 2003 James Troup <james@nocrew.org>
-# $Id: tea,v 1.26 2003-10-17 11:20:47 troup Exp $
+# Copyright (C) 2000, 2001, 2002, 2003, 2004 James Troup <james@nocrew.org>
+# $Id: tea,v 1.31 2004-11-27 18:03:11 troup Exp $
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
################################################################################
-import commands, os, pg, stat, string, sys, tempfile, time;
+import commands, os, pg, stat, string, sys, time;
import db_access, utils;
import apt_pkg, apt_inst;
if os.access(filename, os.R_OK) == 0:
utils.warn("'%s' doesn't exist." % (filename));
- file = utils.open_file(Cnf["Dir::Override"]+'override.unreferenced');
- for filename in file.readlines():
- filename = filename[:-1];
- excluded[filename] = "";
+ filename = Cnf["Dir::Override"]+'override.unreferenced';
+ if os.path.exists(filename):
+ file = utils.open_file(filename);
+ for filename in file.readlines():
+ filename = filename[:-1];
+ excluded[filename] = "";
print "Checking against existent files...";
- os.path.walk(Cnf["Dir::Root"]+'dists/', process_dir, None);
+ os.path.walk(Cnf["Dir::Root"]+'pool/', process_dir, None);
print
print "%s wasted..." % (utils.size_type(waste));
for line in list_file.readlines():
file = line[:-1];
try:
- utils.parse_changes(file, dsc_whitespace_rules=1);
+ utils.parse_changes(file, signing_rules=1);
except utils.invalid_dsc_format_exc, line:
utils.warn("syntax error in .dsc file '%s', line %s." % (file, line));
count += 1;
def check_override():
for suite in [ "stable", "unstable" ]:
print suite
- print "-------------"
+ print "-"*len(suite)
print
suite_id = db_access.get_suite_id(suite);
q = projectB.query("""
filename = "%s/dists/%s/%s/source/Sources.gz" % (Cnf["Dir::Root"], suite, component);
print "Processing %s..." % (filename);
# apt_pkg.ParseTagFile needs a real file handle and can't handle a GzipFile instance...
- temp_filename = tempfile.mktemp();
- fd = os.open(temp_filename, os.O_RDWR|os.O_CREAT|os.O_EXCL, 0700);
- os.close(fd);
+ temp_filename = utils.temp_filename();
(result, output) = commands.getstatusoutput("gunzip -c %s > %s" % (filename, temp_filename));
if (result != 0):
sys.stderr.write("Gunzip invocation failed!\n%s\n" % (output));
directory = Sources.Section.Find('Directory');
files = Sources.Section.Find('Files');
for i in files.split('\n'):
- s = i.split();
- (md5, size, name) = s;
+ (md5, size, name) = i.split();
filename = "%s/%s/%s" % (Cnf["Dir::Root"], directory, name);
if not os.path.exists(filename):
if directory.find("potato") == -1:
src = utils.clean_symlink(pool_filename, filename, Cnf["Dir::Root"]);
print "Symlinking: %s -> %s" % (filename, src);
#os.symlink(src, filename);
+ sources.close();
os.unlink(temp_filename);
########################################
def validate_packages(suite, component, architecture):
- filename = "%s/dists/%s/%s/binary-%s/Packages" \
+ filename = "%s/dists/%s/%s/binary-%s/Packages.gz" \
% (Cnf["Dir::Root"], suite, component, architecture);
print "Processing %s..." % (filename);
- packages = utils.open_file(filename);
+ # apt_pkg.ParseTagFile needs a real file handle and can't handle a GzipFile instance...
+ temp_filename = utils.temp_filename();
+ (result, output) = commands.getstatusoutput("gunzip -c %s > %s" % (filename, temp_filename));
+ if (result != 0):
+ sys.stderr.write("Gunzip invocation failed!\n%s\n" % (output));
+ sys.exit(result);
+ packages = utils.open_file(temp_filename);
Packages = apt_pkg.ParseTagFile(packages);
while Packages.Step():
filename = "%s/%s" % (Cnf["Dir::Root"], Packages.Section.Find('Filename'));
if not os.path.exists(filename):
print "W: %s missing." % (filename);
packages.close();
+ os.unlink(temp_filename);
########################################
# q = projectB.query("BEGIN WORK");
for i in q_files:
filename = os.path.normpath(i[0] + i[1]);
- file_id = i[2];
+# file_id = i[2];
if os.access(filename, os.R_OK) == 0:
utils.warn("%s: doesn't exist." % (filename));
else: