blob: 479c0ba97d1f547f5e967ec7e5f078a0c041c9f7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
#!/bin/bash
. ./functions
function usage_cmd()
{
case "$1" in
mvpkg)
cat <<EOF
Usage: repoctl mvpkg [options] --srcrepo distribution:section:sectionrepo \\
--dstrepo distribution:section:sectionrepo \\
--srcpkg|--binpkg name
Options:
--dry-run : don't do anything, but show what would have been done.
--no-genhdlists : don't regenerate hdlists
--srcpkg name : name of a source package. All the binary packages
generated by this source package will also be moved.
--binpkg name : name of a binary package.
Example :
Move emacs packages from 1/core/updates_testing to 1/core/updates :
repoctl mvpkg --srcrepo 1:core:updates_testing --dstrepo 1:core:updates \
--srcpkg emacs
EOF
;;
rmpkg)
cat <<EOF
Usage: repoctl rmpkg [options] --srcrepo distribution:section:sectionrepo \\
--srcpkg|--binpkg name
Options:
rmpkg can take the same options as mvpkg. See repoctl mvpkg --help
for details.
Example :
Remove emacs package from 1/core/updates_testing repository :
repoctl rmpkg --srcrepo 1:core:updates_testing --srcpkg emacs
EOF
esac
}
function mvpkg()
{
args=$(getopt -o hn -l srcrepo:,dstrepo:,dry-run,remove,help,no-genhdlists,no-mirror,srcpkg:,binpkg: -- "$@")
[ $? -ne 0 ] && usage_cmd mvpkg && exit 1
eval set -- "$args"
[ $# -lt 1 ] && exit 1
while [ $# -gt 0 ]
do
case $1 in
-h|--help)
if [ -z "$remove" ]
then
usage_cmd mvpkg
else
usage_cmd rmpkg
fi
exit 0
;;
-n|--dry-run)
dryrun=echo
shift;;
--remove)
remove=1
shift;;
--no-genhdlists)
nogenhdlists=1
shift;;
--no-mirror)
nomirror=1
shift;;
--srcrepo)
IFS=':' read -ra srcrepo <<< "$2"
shift;shift;;
--dstrepo)
IFS=':' read -ra dstrepo <<< "$2"
shift;shift;;
--srcpkg)
srcpkg="$2"
shift;shift;;
--binpkg)
binpkg="$2"
shift;shift;;
--)
shift;break;;
-*)
usage
exit 1
;;
*)
break
;;
esac
done
if [ -z "$srcrepo" -o -z "$remove$dstrepo" -o \( -z "$srcpkg" -a -z "$binpkg" \) ]
then
usage
exit 1
fi
if [ -n "$srcpkg" ]
then
move_pkg "${srcrepo[0]}" "${srcrepo[1]}" "${srcrepo[2]}" \
"${dstrepo[0]}" "${dstrepo[1]}" "${dstrepo[2]}" \
"$srcpkg" "/dev/stdout"
if [ -z "$nogenhdlists" ]
then
update_hdlists "${srcrepo[0]}" "${srcrepo[1]}" "${srcrepo[2]}"
[ -n "$dstrepo" ] &&
update_hdlists "${dstrepo[0]}" "${dstrepo[1]}" "${dstrepo[2]}"
if [ -z "$nomirror" ]
then
mirror_repository "${srcrepo[0]}"
[ -n "${dstrepo[0]}" ] && [ "${srcrepo[0]}" != "${dstrepo[0]}" ] &&
mirror_repository "${dstrepo[0]}"
fi
fi
else
echo "The --binpkg option is not supported yet"
fi
}
function rmpkg()
{
mvpkg --remove $@
}
function usage()
{
cat <<EOF
Usage: repoctl COMMAND [COMMAND ARGUMENTS]
Useful commands :
mvpkg
lnpkg
rmpkg
genhdlists
mirrordistro
getrepolock
rmrepolock
getdistrolock
rmdistrolock
For more infos about a command, use :
repoctl COMMAND --help
EOF
}
case "$1" in
mvpkg)
shift
mvpkg $@
;;
rmpkg)
shift
rmpkg $@
;;
*)
usage
exit 1
;;
esac
|