#!/bin/sh -e # # # DASHT-DOCSETS-UPDATE 1 2020-05-16 2.4.0 # # ## NAME # # dasht-docsets-update - updates installed [Dash] docsets # # ## SYNOPSIS # # `dasht-docsets-update` [*NAME*...] # # ### Examples # # `dasht-docsets-update` # Updates all installed [Dash] docsets. # # `dasht-docsets-update` sh # Updates installed [Dash] docsets whose names contain "sh". # # `dasht-docsets-update` sh 'c$' # Updates installed [Dash] docsets whose names contain "sh" or end in "c". # # ## DESCRIPTION # # Updates installed [Dash] docsets whose names match the *NAME* regex(7) # patterns. If no *NAME*s are given, all available docsets are matched. # # ## ENVIRONMENT # # `DASHT_DOCSETS_DIR` # Defines the filesystem location where your [Dash] docsets are installed. # If undefined, its value is assumed to be `$XDG_DATA_HOME/dasht/docsets/` # or, if `XDG_DATA_HOME` is undefined, `$HOME/.local/share/dasht/docsets/`. # # ## SEE ALSO # # dasht-docsets-extract(1), dasht-docsets-install(1), dasht-docsets-remove(1), # dasht-docsets(1), [Dash] # # [Dash]: https://kapeli.com/dash # # ## AUTHOR # # Written in 2016 by Suraj N. Kurapati # Distributed under the terms of the ISC license (refer to README file). : ${DASHT_DOCSETS_DIR:=${XDG_DATA_HOME:-$HOME/.local/share}/dasht/docsets} dasht-docsets "$@" | while read -r docset; do ls "$DASHT_DOCSETS_DIR/$docset"*.tgz done | sort -u | while read -r tgz; do last_modified_at="$tgz".last_modified_at url="https://kapeli.com/feeds/$(basename "$tgz")" touch -r "$tgz" "$last_modified_at" wget -P "$DASHT_DOCSETS_DIR" -N "$url" test "$tgz" -nt "$last_modified_at" && dasht-docsets-extract "$tgz" rm "$last_modified_at" done