diff options
author | Shaun McCance <shaunm@gnome.org> | 2015-07-07 09:25:38 -0400 |
---|---|---|
committer | Shaun McCance <shaunm@gnome.org> | 2015-07-07 09:25:38 -0400 |
commit | 052a5d2790356eb129b6cd7c9e30126b7cc35244 (patch) | |
tree | 285da7fece33f67f681bbb72390a83349c625d88 | |
parent | 27b9ea28b8ddd3c173600941d554d8ae8879286d (diff) | |
download | yelp-tools-052a5d2790356eb129b6cd7c9e30126b7cc35244.tar.gz |
yelp-check: Added Mallard Sites support for orphans command
-rwxr-xr-x | tools/yelp-check.in | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/tools/yelp-check.in b/tools/yelp-check.in index cdbed45..2b147b4 100755 --- a/tools/yelp-check.in +++ b/tools/yelp-check.in @@ -179,6 +179,7 @@ yelp_usage_orphans () { echo "" echo "Options:" echo " -c CACHE Use the existing Mallard cache CACHE" + echo " -s Treat pages as belonging to a Mallard site" ) 1>&2 } yelp_usage_comments () { @@ -635,6 +636,10 @@ yelp_media () { } yelp_orphans_page () { + if [ "x$check_site" = "x1" ]; then + sdir=$(cd $(dirname "$1") && pwd) + sdir=${sdir##${check_site_root}}/ + fi ( echo '<xsl:stylesheet' echo ' xmlns:xsl="http://www.w3.org/1999/XSL/Transform"' @@ -646,12 +651,14 @@ yelp_orphans_page () { echo '<xsl:import href="'"$xsl"'"/>' check_cache_url='file://'`urlencode "$check_cache_file"` echo '<xsl:param name="mal.cache.file" select="'"'$check_cache_url'"'"/>' + echo '<xsl:variable name="site.dir" select="'"'$sdir'"'"/>' echo '<xsl:output method="text"/>' echo '<xsl:template match="/mal:page">' echo ' <xsl:variable name="trails">' echo ' <xsl:call-template name="mal.link.linktrails"/>' echo ' </xsl:variable>' echo ' <xsl:if test="@id != '"'index'"' and count(exsl:node-set($trails)/*) = 0">' + echo ' <xsl:value-of select="$site.dir"/>' echo ' <xsl:value-of select="@id"/>' echo ' <xsl:text>
</xsl:text>' echo ' </xsl:if>' @@ -667,6 +674,11 @@ yelp_orphans () { fi while [ "$#" != "0" ]; do case "$1" in + "-s") + check_site="1" + check_site_root=$(pwd) + shift + ;; "-c") shift check_cache_file="$1" @@ -682,22 +694,35 @@ yelp_orphans () { exit 1 fi if [ "x$check_cache_file" != "x" ]; then - check_cache_file=`(cd $(dirname "$check_cache_file") && pwd)`/`basename "$check_cache_file"` + check_cache_dir=$(dirname "$check_cache_file") + check_cache_dir=$(cd "$check_cache_dir" && pwd) + check_cache_file="$check_cache_dir/"$(basename "$check_cache_file") + elif [ -d "$1" ]; then + check_cache_file=1 else - check_cache_file_is_tmp="yes" - check_cache_file=`mktemp "${TMPDIR:-/tmp}"/yelp-XXXXXXXX` - yelp-build cache -o "$check_cache_file" "$@" + case "$1" in + *.page | *.stub | *.cache) + check_cache_file=1 + ;; + *) + break + ;; + esac fi - check_out_file=`mktemp "${TMPDIR:-/tmp}"/yelp-XXXXXXXX` - for xml in "$@"; do - if [ -d "$xml" ]; then - for page in "$xml"/*.page; do - yelp_orphans_page "$page" - done + if [ "x$check_cache_file" = "x1" ]; then + check_cache_file_is_tmp="yes" + check_cache_file=$(mktemp "${TMPDIR:-/tmp}"/yelp-XXXXXXXX) + if [ "x$check_site" = "x1" ]; then + yelp-build cache -s -o "$check_cache_file" "$@" else - yelp_orphans_page "$xml" + yelp-build cache -o "$check_cache_file" "$@" fi - done > "$check_out_file" + fi + + check_out_file=`mktemp "${TMPDIR:-/tmp}"/yelp-XXXXXXXX` + check_db= + check_page=yelp_orphans_page + yelp_check_iter_args "$@" > "$check_out_file" yelp_check_retval=$(wc -l < "$check_out_file") if test "x$yelp_check_retval" != "x0"; then yelp_check_retval=1 |