summaryrefslogtreecommitdiff
path: root/trunk
diff options
context:
space:
mode:
authorsolar <solar@gentoo.org>2006-07-23 23:35:48 +0000
committersolar <solar@gentoo.org>2006-07-23 23:35:48 +0000
commit3b49de4f24b1dca52bd7f56beee57a45adc5511c (patch)
treeaa30b8e2d94cdc5bc99b2343094ad1e89c06ca74 /trunk
parentdc0fd8ee3a1bd2a0bf57875fff66e929f7a11f45 (diff)
downloadgentoolkit-3b49de4f24b1dca52bd7f56beee57a45adc5511c.tar.gz
- update code to not write to the Packages file directly untill we have finished successfully. Make sure we always write a timestamp and the number of pkgs in the binrepo. Run eclean-pkg if cleanpkgdir is set in FEATURES=
svn path=/; revision=305
Diffstat (limited to 'trunk')
-rw-r--r--trunk/src/genpkgindex/genpkgindex22
1 files changed, 19 insertions, 3 deletions
diff --git a/trunk/src/genpkgindex/genpkgindex b/trunk/src/genpkgindex/genpkgindex
index 43f13ac..faf6486 100644
--- a/trunk/src/genpkgindex/genpkgindex
+++ b/trunk/src/genpkgindex/genpkgindex
@@ -3,6 +3,10 @@
# Distributed under the terms of the GNU General Public License v2
import os, string, stat, sys, time
+
+for x in ['CFLAGS','LDFLAGS','USE']:
+ os.environ[x]=''
+
import xpak, portage, portage_checksum, portage_dep, portage_util
argc=len(sys.argv)
@@ -17,13 +21,18 @@ if argc >= 2:
else:
All=portage.settings["PKGDIR"]+"/All"
+All=os.path.normpath(All)
+
+if os.path.exists("/usr/bin/eclean") and "cleanpkgdir" in portage.settings["FEATURES"]:
+ os.system("/usr/bin/eclean -d packages")
+
os.chdir(All)
-portage.writemsg(portage.green(' * ')+'update binary package index %s\n' % All);
+portage.writemsg(portage.green(' * ')+'Update binary package index %s\n' % All);
start = time.time()
# generic name of our package index.
-control_file = "Packages"
+control_file = ".Packages"
try:
import re
@@ -56,12 +65,14 @@ for pkg in os.listdir('.'):
packages.sort()
+timestamp=str(start).split(".")[0]
# trunc the file and begin write operations.
fp = open(control_file, "w")
if argc <= 1:
fp.write("PROFILE: "+profilever+"\n")
fp.write("PACKAGES: "+str(len(packages)) +"\n")
+ fp.write("TIMESTAMP: "+timestamp+"\n")
vmask = [ "AUTOCLEAN", "DISTDIR", "PKGDIR", "PORTDIR" , "PORTAGE_TMPDIR" ]
vars = portage_util.grabfile(portage.settings["PORTDIR"]+"/profiles/info_vars")
@@ -74,7 +85,11 @@ if argc <= 1:
if portage.settings.has_key(x):
if (len(portage.settings[x])):
fp.write(x+": "+portage.settings[x]+"\n")
- fp.write("\n")
+else:
+ fp.write("PACKAGES: "+str(len(packages)) +"\n")
+ fp.write("TIMESTAMP: "+timestamp+"\n")
+
+fp.write("\n")
for cat, pkg, tbz2, stuff in packages:
use = xpak.getitem(stuff, "USE")
@@ -123,6 +138,7 @@ for cat, pkg, tbz2, stuff in packages:
fp.write("\n")
fp.flush()
fp.close()
+os.rename(".Packages", "Packages")
finish = time.time()