only download db if newer, -U to force (#15)
This commit is contained in:
parent
83d3c35496
commit
5e163c1518
45
whatprovides
45
whatprovides
|
@ -8,8 +8,8 @@ DB_UPDATES_URL="https://dl.bintray.com/termux/metadata/whatprovides-db/whatprovi
|
||||||
show_usage () {
|
show_usage () {
|
||||||
{
|
{
|
||||||
echo
|
echo
|
||||||
echo "Usage: $SCRIPT_NAME [-u] path/to/file"
|
echo "Usage: $SCRIPT_NAME [-u|-U] path/to/file"
|
||||||
echo " $SCRIPT_NAME -p [-u] package"
|
echo " $SCRIPT_NAME -p [-u|-U] package"
|
||||||
echo
|
echo
|
||||||
echo "Find out packages using specific files."
|
echo "Find out packages using specific files."
|
||||||
echo
|
echo
|
||||||
|
@ -22,6 +22,8 @@ show_usage () {
|
||||||
echo
|
echo
|
||||||
echo " -u Update the database."
|
echo " -u Update the database."
|
||||||
echo
|
echo
|
||||||
|
echo " -U Redownload the database even if it's not updated."
|
||||||
|
echo
|
||||||
echo " -q Quiet mode. Suppress informational messages."
|
echo " -q Quiet mode. Suppress informational messages."
|
||||||
echo
|
echo
|
||||||
} >&2
|
} >&2
|
||||||
|
@ -35,26 +37,36 @@ update_database() {
|
||||||
rm -f "${DB_PATH}.gz"
|
rm -f "${DB_PATH}.gz"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! ${FORCE_UPDATE} && [ -e "${DB_PATH}" ]; then
|
||||||
|
NEWER=(--time-cond "${DB_PATH}")
|
||||||
|
else
|
||||||
|
NEWER=()
|
||||||
|
fi
|
||||||
|
|
||||||
if ! ${QUIET}; then
|
if ! ${QUIET}; then
|
||||||
echo "[*] Downloading the new database..." >&2
|
echo "[*] Downloading the new database..." >&2
|
||||||
echo >&2
|
echo >&2
|
||||||
|
|
||||||
curl --fail --retry 3 --retry-connrefused --retry-delay 1 --location \
|
curl --fail --retry 3 --retry-connrefused --retry-delay 1 --location \
|
||||||
--output "${DB_PATH}.gz" "${DB_UPDATES_URL}"
|
"${NEWER[@]}" --output "${DB_PATH}.gz" "${DB_UPDATES_URL}"
|
||||||
|
|
||||||
echo >&2
|
echo >&2
|
||||||
echo "[*] Installing..." >&2
|
|
||||||
else
|
else
|
||||||
curl --silent --fail --retry 3 --retry-connrefused --retry-delay 1 \
|
curl --silent --fail --retry 3 --retry-connrefused --retry-delay 1 \
|
||||||
--location --output "${DB_PATH}.gz" "${DB_UPDATES_URL}"
|
--location "${NEWER[@]}" --output "${DB_PATH}.gz" "${DB_UPDATES_URL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f "${DB_PATH}"
|
if [ -e "${DB_PATH}.gz" ]; then
|
||||||
zcat "${DB_PATH}.gz" > "${DB_PATH}"
|
if ! ${QUIET}; then
|
||||||
rm -f "${DB_PATH}.gz"
|
echo "[*] Installing..." >&2
|
||||||
|
fi
|
||||||
if ! ${QUIET}; then
|
zcat "${DB_PATH}.gz" > "${DB_PATH}"
|
||||||
echo "[*] Finished." >&2
|
rm -f "${DB_PATH}.gz"
|
||||||
|
if ! ${QUIET}; then
|
||||||
|
echo "[*] Finished." >&2
|
||||||
|
fi
|
||||||
|
elif ! ${QUIET}; then
|
||||||
|
echo "[*] No update done." >&2
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,13 +82,22 @@ check_database() {
|
||||||
|
|
||||||
REVERSE_MODE=false
|
REVERSE_MODE=false
|
||||||
DO_UPDATE=false
|
DO_UPDATE=false
|
||||||
|
FORCE_UPDATE=false
|
||||||
QUIET=false
|
QUIET=false
|
||||||
while (($# > 0)); do
|
while (($# > 0)); do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-h) show_usage; exit 0;;
|
-h) show_usage; exit 0;;
|
||||||
-p) REVERSE_MODE=true;;
|
-p) REVERSE_MODE=true;;
|
||||||
-q) QUIET=true;;
|
-q) QUIET=true;;
|
||||||
-u) DO_UPDATE=true;;
|
-U) FORCE_UPDATE=true;& # fall-through
|
||||||
|
-u)
|
||||||
|
if ${DO_UPDATE}; then
|
||||||
|
echo "-u and -U are mutually exclusive." >&2
|
||||||
|
show_usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
DO_UPDATE=true
|
||||||
|
;;
|
||||||
-*)
|
-*)
|
||||||
echo >&2
|
echo >&2
|
||||||
echo "Unknown option '$1'." >&2
|
echo "Unknown option '$1'." >&2
|
||||||
|
|
Loading…
Reference in New Issue