#!/bin/bash
#
-# $Id: ddtp_i18n_check.sh 1670 2009-03-31 20:57:49Z nekral-guest $
+# $Id: ddtp_i18n_check.sh 2535 2011-02-19 14:20:52Z nekral-guest $
#
-# Copyright (C) 2008, Felipe Augusto van de Wiel <faw@funlabs.org>
+# Copyright (C) 2008, 2011 Felipe Augusto van de Wiel <faw@funlabs.org>
# Copyright (C) 2008, 2009 Nicolas François <nicolas.francois@centraliens.net>
#
# This program is free software; you can redistribute it and/or modify
# files.
DRY_RUN=0
+# When GEN_IDX=1, we create the Index files. There is a runtime option
+# to not create/generate the Index file.
+GEN_IDX=1
+
dists_parent_dir=""
# If no argument indicates the PACKAGES_LISTS_DIR then use '.'
PACKAGES_LISTS_DIR=""
echo " --debug Debug mode: do not stop after the first error" >&2
echo " --dry-run Do not generate the compressed version of the " >&2
echo " Translation files">&2
+ echo " --no-index Do not generate the Index files" >&2
exit 1
}
"--dry-run")
DRY_RUN=1
;;
+ "--no-index")
+ GEN_IDX=0
+ ;;
"-*")
usage
;;
usage
fi
-#STABLE="lenny"
+#STABLE="squeeze"
TESTING="wheezy"
UNSTABLE="sid"
# Original SHA256SUMS, generated by i18n.debian.net
-SHA256SUMS="SHA256SUMS"
+CHECKSUMS="SHA256SUMS"
# DAK Timestamp
TIMESTAMP="timestamp"
# These special files must exist on the top of dists_parent_dir
-SPECIAL_FILES="$SHA256SUMS $TIMESTAMP $TIMESTAMP.gpg"
+SPECIAL_FILES="$CHECKSUMS $TIMESTAMP $TIMESTAMP.gpg"
# Temporary working directory. We need a full path to reduce the
-# complexity of checking SHA256SUMS and cleaning/removing TMPDIR
+# complexity of checking CHECKSUMS and cleaning/removing TMPDIR
TEMP_WORK_DIR=$(mktemp -d -t ddtp_dinstall_tmpdir.XXXXXX)
cd "$TEMP_WORK_DIR"
TMP_WORK_DIR=$(pwd)
trap_exit () {
rm -rf "$TMP_WORK_DIR"
rm -f "$dists_parent_dir"/dists/*/main/i18n/Translation-*.bz2
+ rm -f "$dists_parent_dir"/dists/*/main/i18n/Index
exit 1
}
trap trap_exit EXIT HUP INT QUIT TERM
fi
done
-# Comparing SHA256SUMS
-# We don use -c because a file could exist in the directory tree and not in
-# the SHA256SUMS, so we sort the existing SHA256SUMS and we create a new one
+# Comparing CHECKSUMS
+# We don't use -c because a file could exist in the directory tree and not in
+# the CHECKSUMS, so we sort the existing CHECKSUMS and we create a new one
# already sorted, if cmp fails then files are different and we don't want to
# continue.
cd "$dists_parent_dir"
-find dists -type f -print0 |xargs --null sha256sum > "$TMP_WORK_DIR/$SHA256SUMS.new"
-sort "$SHA256SUMS" > "$TMP_WORK_DIR/$SHA256SUMS.sorted"
-sort "$TMP_WORK_DIR/$SHA256SUMS.new" > "$TMP_WORK_DIR/$SHA256SUMS.new.sorted"
-if ! cmp --quiet "$TMP_WORK_DIR/$SHA256SUMS.sorted" "$TMP_WORK_DIR/$SHA256SUMS.new.sorted"; then
- echo "Failed to compare the SHA256SUMS, they are not identical!" >&2
- diff -au "$TMP_WORK_DIR/$SHA256SUMS.sorted" "$TMP_WORK_DIR/$SHA256SUMS.new.sorted" >&2
+find dists -type f -print0 |xargs --null sha256sum > "$TMP_WORK_DIR/$CHECKSUMS.new"
+sort "$CHECKSUMS" > "$TMP_WORK_DIR/$CHECKSUMS.sorted"
+sort "$TMP_WORK_DIR/$CHECKSUMS.new" > "$TMP_WORK_DIR/$CHECKSUMS.new.sorted"
+if ! cmp --quiet "$TMP_WORK_DIR/$CHECKSUMS.sorted" "$TMP_WORK_DIR/$CHECKSUMS.new.sorted"; then
+ echo "Failed to compare the $CHECKSUMS, they are not identical!" >&2
+ diff -au "$TMP_WORK_DIR/$CHECKSUMS.sorted" "$TMP_WORK_DIR/$CHECKSUMS.new.sorted" >&2
exit 1
fi
cd "$OLDPWD"
if ! is_dirname_okay "$f"; then
echo "Wrong directory name: $f" >&2
exit 1
+ else
+ # If the directory name is OK, and if it's name is i18n
+ # and GEN_IDX is enabled, we generate the header of the
+ # Index file
+ if [ "$(basename $f)" = "i18n" -a "$GEN_IDX" = "1" ];
+ then
+ echo "SHA1:" > "$f/Index"
+ fi
fi
elif [ -f "$f" ]; then
# If $f is in $SPECIAL_FILES, we skip to the next loop because
# Now generate the compressed files
bzip2 "$f"
fi
+
+ # Create Index
+ if [ "$GEN_IDX" = "1" ]; then
+ fbz=${f}.bz2
+ IDX=$(dirname $f)
+ tf_name=$(basename $fbz)
+ tf_sha1=$(sha1sum $fbz)
+ tf_size=$(du $fbz)
+ printf ' %s % 7s %s\n' "${tf_sha1% *}" \
+ "${tf_size% *}" "${tf_name}" >> "$IDX/Index"
+ fi
else
echo "Neither a file or directory: $f" >&2
exit 1