Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
喜羊羊3508
Dak
提交
2c9e82a8
D
Dak
项目概览
喜羊羊3508
/
Dak
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
2c9e82a8
编写于
10月 16, 2002
作者:
J
James Troup
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
new script
上级
b5d32f0b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
107 addition
and
0 deletion
+107
-0
rose
rose
+107
-0
未找到文件。
rose
0 → 100755
浏览文件 @
2c9e82a8
#!/usr/bin/env python
# Initial setup of an archive
# Copyright (C) 2002 James Troup <james@nocrew.org>
# $Id: rose,v 1.1 2002-10-16 02:45:12 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
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
################################################################################
import
os
,
sys
;
import
utils
;
import
apt_pkg
;
################################################################################
Cnf
=
None
;
################################################################################
def
do_dir
(
target
,
config_name
):
if
os
.
path
.
exists
(
target
):
if
not
os
.
path
.
isdir
(
target
):
utils
.
fubar
(
"%s (%s) is not a directory."
%
(
target
,
config_name
));
else
:
print
"Creating %s ..."
%
(
target
);
os
.
makedirs
(
target
);
def
process_file
(
config
,
config_name
):
if
config
.
has_key
(
config_name
):
target
=
os
.
path
.
dirname
(
config
[
config_name
]);
do_dir
(
target
,
config_name
);
def
process_tree
(
config
,
tree
):
for
entry
in
config
.
SubTree
(
tree
).
List
():
entry
=
entry
.
lower
();
if
tree
==
"Dir"
:
if
entry
==
"poolroot"
or
entry
==
"queue"
or
entry
==
"morguereject"
:
continue
;
config_name
=
"%s::%s"
%
(
tree
,
entry
);
target
=
config
[
config_name
];
do_dir
(
target
,
config_name
);
def
process_morguesubdir
(
subdir
):
config_name
=
"%s::MorgueSubDir"
%
(
subdir
);
if
Cnf
.
has_key
(
config_name
):
target
=
os
.
path
.
join
(
Cnf
[
"Dir::Morgue"
],
Cnf
[
config_name
]);
do_dir
(
target
,
config_name
);
######################################################################
def
create_directories
():
# Process directories from apt.conf
process_tree
(
Cnf
,
"Dir"
);
process_tree
(
Cnf
,
"Dir::Queue"
);
for
file
in
[
"Dinstall::LockFile"
,
"Melanie::LogFile"
,
"Neve::ExportDir"
]:
process_file
(
Cnf
,
file
);
for
subdir
in
[
"Shania"
,
"Rhona"
]:
process_morguesubdir
(
subdir
);
# Process directories from apt.conf
process_tree
(
AptCnf
,
"Dir"
);
for
tree
in
AptCnf
.
SubTree
(
"Tree"
).
List
():
config_name
=
"Tree::%s"
%
(
tree
);
tree_dir
=
os
.
path
.
join
(
Cnf
[
"Dir::Root"
],
tree
);
do_dir
(
tree_dir
,
tree
);
for
file
in
[
"FileList"
,
"SourceFileList"
]:
process_file
(
AptCnf
,
"%s::%s"
%
(
config_name
,
file
));
for
component
in
AptCnf
[
"%s::Sections"
%
(
config_name
)].
split
():
for
architecture
in
AptCnf
[
"%s::Architectures"
%
(
config_name
)].
split
():
if
architecture
!=
"source"
:
architecture
=
"binary-"
+
architecture
;
target
=
os
.
path
.
join
(
tree_dir
,
component
,
architecture
);
do_dir
(
target
,
"%s, %s, %s"
%
(
tree
,
component
,
architecture
));
################################################################################
def
main
():
global
Cnf
,
projectB
;
Cnf
=
utils
.
get_conf
()
apt_pkg
.
ParseCommandLine
(
Cnf
,[],
sys
.
argv
);
AptCnf
=
apt_pkg
.
newConfiguration
();
apt_pkg
.
ReadConfigFileISC
(
AptCnf
,
utils
.
which_apt_conf_file
());
create_directories
();
################################################################################
if
__name__
==
'__main__'
:
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录