summaryrefslogtreecommitdiffstats
path: root/lib/cmd/generate-index.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cmd/generate-index.sh')
-rw-r--r--lib/cmd/generate-index.sh35
1 files changed, 34 insertions, 1 deletions
diff --git a/lib/cmd/generate-index.sh b/lib/cmd/generate-index.sh
index 88ef95b..1b9798d 100644
--- a/lib/cmd/generate-index.sh
+++ b/lib/cmd/generate-index.sh
@@ -23,5 +23,38 @@ use output
cmd_generate_index_main()
{
- printf 'Not implemented\n'
+ local comp=
+ local dist=
+ local plat=
+ local arch=
+ local feed=
+
+ if [ ${#} -eq 0 ]; then
+ for comp in "${archive}/dists/"*/; do
+ for dist in "${comp}/"*/; do
+ for plat in "${dist}/"*/; do
+ for arch in "${plat}/"*/; do
+ feed="${plat#${archive}/dists/}"
+ cmd_generate_index "${feed}"
+ done
+ done
+ done
+ done
+ else
+ for feed in "${@}"; do
+ cmd_generate_index "${feed}"
+ done
+ fi
+}
+
+cmd_generate_index()
+{
+ local feed="${1}"
+
+ info "$(get_msg 'cmd_generate_index_generating')" "${feed}"
+
+ cat "${archive}/dists/${feed}.db/"*.control \
+ >"${archive}/dists/${feed}/Packages~"
+ mv "${archive}/dists/${feed}/Packages~" \
+ "${archive}/dists/${feed}/Packages"
}