Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
喜羊羊3508
Dak
提交
654c6d73
D
Dak
项目概览
喜羊羊3508
/
Dak
11 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Dak
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
654c6d73
编写于
7月 05, 2012
作者:
A
Ansgar Burchardt
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dak/check_archive.py: update for multi-archive changes
上级
728941d6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
53 addition
and
31 deletion
+53
-31
dak/check_archive.py
dak/check_archive.py
+53
-31
未找到文件。
dak/check_archive.py
浏览文件 @
654c6d73
...
...
@@ -109,39 +109,61 @@ def check_files():
Prepare the dictionary of existing filenames, then walk through the archive
pool/ directory to compare it.
"""
global
db_files
cnf
=
Config
()
session
=
DBConn
().
session
()
print
"Building list of database files..."
q
=
DBConn
().
session
().
query
(
PoolFile
).
join
(
Location
).
order_by
(
'path'
,
'location'
)
print
"Missing files:"
db_files
.
clear
()
for
f
in
q
.
all
():
filename
=
os
.
path
.
abspath
(
os
.
path
.
join
(
f
.
location
.
path
,
f
.
filename
))
db_files
[
filename
]
=
""
if
os
.
access
(
filename
,
os
.
R_OK
)
==
0
:
if
f
.
last_used
:
print
"(last used: %s) %s"
%
(
f
.
last_used
,
filename
)
else
:
print
"%s"
%
(
filename
)
filename
=
os
.
path
.
join
(
cnf
[
"Dir::Override"
],
'override.unreferenced'
)
if
os
.
path
.
exists
(
filename
):
f
=
utils
.
open_file
(
filename
)
for
filename
in
f
.
readlines
():
filename
=
filename
[:
-
1
]
excluded
[
filename
]
=
""
print
"Existent files not in db:"
os
.
path
.
walk
(
os
.
path
.
join
(
cnf
[
"Dir::Root"
],
'pool/'
),
process_dir
,
None
)
print
print
"%s wasted..."
%
(
utils
.
size_type
(
waste
))
query
=
"""
SELECT archive.name, suite.suite_name, f.filename
FROM binaries b
JOIN bin_associations ba ON b.id = ba.bin
JOIN suite ON ba.suite = suite.id
JOIN archive ON suite.archive_id = archive.id
JOIN files f ON b.file = f.id
WHERE NOT EXISTS (SELECT 1 FROM files_archive_map af
WHERE af.archive_id = suite.archive_id
AND af.file_id = b.file)
ORDER BY archive.name, suite.suite_name, f.filename
"""
for
row
in
session
.
execute
(
query
):
print
"MISSING-ARCHIVE-FILE {0} {1} {2}"
.
vformat
(
row
)
query
=
"""
SELECT archive.name, suite.suite_name, f.filename
FROM source s
JOIN src_associations sa ON s.id = sa.source
JOIN suite ON sa.suite = suite.id
JOIN archive ON suite.archive_id = archive.id
JOIN dsc_files df ON s.id = df.source
JOIN files f ON df.file = f.id
WHERE NOT EXISTS (SELECT 1 FROM files_archive_map af
WHERE af.archive_id = suite.archive_id
AND af.file_id = df.file)
ORDER BY archive.name, suite.suite_name, f.filename
"""
for
row
in
session
.
execute
(
query
):
print
"MISSING-ARCHIVE-FILE {0} {1} {2}"
.
vformat
(
row
)
archive_files
=
session
.
query
(
ArchiveFile
)
\
.
join
(
ArchiveFile
.
archive
).
join
(
ArchiveFile
.
file
)
\
.
order_by
(
Archive
.
archive_name
,
PoolFile
.
filename
)
expected_files
=
set
()
for
af
in
archive_files
:
path
=
af
.
path
expected_files
.
add
(
af
.
path
)
if
not
os
.
path
.
exists
(
path
):
print
"MISSING-FILE {0} {1} {2}"
.
format
(
af
.
archive
.
archive_name
,
af
.
file
.
filename
,
path
)
archives
=
session
.
query
(
Archive
).
order_by
(
Archive
.
archive_name
)
for
a
in
archives
:
top
=
os
.
path
.
join
(
a
.
path
,
'pool'
)
for
dirpath
,
dirnames
,
filenames
in
os
.
walk
(
top
):
for
fn
in
filenames
:
path
=
os
.
path
.
join
(
dirpath
,
fn
)
if
path
in
expected_files
:
continue
print
"UNEXPECTED-FILE {0} {1}"
.
format
(
a
.
archive_name
,
path
)
################################################################################
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录