Gentoo Archives: gentoo-commits

From: Jauhien Piatlicki <piatlicki@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/g-sorcery:master commit in: g_sorcery/
Date: Sun, 01 Sep 2013 22:12:30
Message-Id: 1378073617.c0881774603c9dfe89af6d68d9765ea1dd1023b5.jauhien@gentoo
1 commit: c0881774603c9dfe89af6d68d9765ea1dd1023b5
2 Author: Jauhien Piatlicki (jauhien) <piatlicki <AT> gmail <DOT> com>
3 AuthorDate: Sun Sep 1 22:13:37 2013 +0000
4 Commit: Jauhien Piatlicki <piatlicki <AT> gmail <DOT> com>
5 CommitDate: Sun Sep 1 22:13:37 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=c0881774
7
8 g_sorcery/package_db: more verbosity
9
10 ---
11 g_sorcery/fileutils.py | 8 +-------
12 g_sorcery/package_db.py | 31 ++++++++++++++-----------------
13 2 files changed, 15 insertions(+), 24 deletions(-)
14
15 diff --git a/g_sorcery/fileutils.py b/g_sorcery/fileutils.py
16 index c7a5257..2e836cf 100644
17 --- a/g_sorcery/fileutils.py
18 +++ b/g_sorcery/fileutils.py
19 @@ -101,13 +101,7 @@ def copy_all(src, dst):
20 src: Source.
21 dst: Destination.
22 """
23 - for f_name in os.listdir(src):
24 - src_name = os.path.join(src, f_name)
25 - dst_name = os.path.join(dst, f_name)
26 - if os.path.isdir(src_name):
27 - shutil.copytree(src_name, dst_name)
28 - else:
29 - shutil.copy2(src_name, dst_name)
30 + os.system("cp -rv " + src + "/* " + dst)
31
32 def wget(uri, directory, output=""):
33 """
34
35 diff --git a/g_sorcery/package_db.py b/g_sorcery/package_db.py
36 index fac6c9f..404e55a 100644
37 --- a/g_sorcery/package_db.py
38 +++ b/g_sorcery/package_db.py
39 @@ -16,7 +16,6 @@ import hashlib
40 import os
41 import shutil
42 import sys
43 -import tarfile
44
45 import portage
46
47 @@ -112,6 +111,7 @@ class PackageDB(object):
48 Args:
49 directory: database directory.
50 """
51 + self.logger = Logger()
52 self.CATEGORIES_NAME = 'categories.json'
53 self.PACKAGES_NAME = 'packages.json'
54 self.VERSIONS_NAME = 'versions.json'
55 @@ -142,32 +142,24 @@ class PackageDB(object):
56
57 temp_dir = TemporaryDirectory()
58 for f_name in glob.iglob(os.path.join(download_dir.name, '*.tar.gz')):
59 - with tarfile.open(f_name) as f:
60 - f.extractall(temp_dir.name)
61 + self.logger.info("unpacking " + f_name)
62 + os.system("tar -xvzf " + f_name + " -C " + temp_dir.name)
63
64 - tempdb_dir = TemporaryDirectory()
65 - tempdb = PackageDB(tempdb_dir.name)
66 -
67 - for d_name in os.listdir(temp_dir.name):
68 - current_dir = os.path.join(temp_dir.name, d_name)
69 - if not os.path.isdir(current_dir):
70 - continue
71 - copy_all(current_dir, tempdb_dir.name)
72 + tempdb_dir = os.listdir(temp_dir.name)[0]
73 + tempdb = PackageDB(tempdb_dir)
74
75 if not tempdb.check_manifest():
76 raise IntegrityError('Manifest check failed.')
77
78 + self.logger.info("copy files to an actual database")
79 self.clean()
80 - copy_all(tempdb_dir.name, self.directory)
81 + copy_all(tempdb_dir, self.directory)
82
83 if not self.check_manifest():
84 raise IntegrityError('Manifest check failed, db inconsistent.')
85
86 del download_dir
87 del temp_dir
88 - del tempdb_dir
89 -
90 - self.read()
91
92 def get_real_db_uri(self, db_uri):
93 """
94 @@ -209,6 +201,7 @@ class PackageDB(object):
95 Tuple with first element containing result of manifest check
96 as boolean and second element containing list of files with errors.
97 """
98 + self.logger.info("checking manifest")
99 m_f = FileJSON(self.directory, 'manifest.json', [])
100 manifest = m_f.read()
101
102 @@ -220,12 +213,17 @@ class PackageDB(object):
103 if not name in manifest:
104 raise DBStructureError('Bad manifest: no ' + name + ' entry')
105
106 + progress_bar = ProgressBar(20, len(manifest))
107 + progress_bar.begin()
108 for name, value in manifest.items():
109 + progress_bar.increment()
110 if hash_file(os.path.join(self.directory, name), hashlib.md5()) != \
111 value:
112 result = False
113 errors.append(name)
114
115 + progress_bar.end()
116 + print("")
117 return (result, errors)
118
119 def clean(self):
120 @@ -249,8 +247,7 @@ class PackageDB(object):
121 categories_f.write(self.categories)
122
123 if self.database:
124 - logger = Logger()
125 - logger.info("writing database")
126 + self.logger.info("writing database")
127
128 progress_bar = ProgressBar(20, len(list(self.database)))
129 if self.database: