90 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
set -e -o pipefail
 | 
						|
 | 
						|
cd `dirname $0`/..
 | 
						|
 | 
						|
BASE="public/docs/ts"
 | 
						|
LATEST="$BASE/latest"
 | 
						|
CACHE="$BASE/_cache"
 | 
						|
 | 
						|
FILES="
 | 
						|
guide/architecture.jade
 | 
						|
guide/attribute-directives.jade
 | 
						|
guide/component-styles.jade
 | 
						|
guide/dependency-injection.jade
 | 
						|
guide/displaying-data.jade
 | 
						|
guide/hierarchical-dependency-injection.jade
 | 
						|
guide/lifecycle-hooks.jade
 | 
						|
guide/pipes.jade
 | 
						|
guide/security.jade
 | 
						|
guide/server-communication.jade
 | 
						|
guide/structural-directives.jade
 | 
						|
guide/template-syntax.jade
 | 
						|
glossary.jade
 | 
						|
quickstart.jade
 | 
						|
tutorial/toh-pt5.jade
 | 
						|
tutorial/toh-pt6.jade"
 | 
						|
 | 
						|
function cacheRefresh() {
 | 
						|
    local FILE_PATTERN="*"
 | 
						|
    if [[ -n "$1" ]]; then
 | 
						|
        FILE_PATTERN="$1"
 | 
						|
    else
 | 
						|
        echo "Argument missing: specify shell file glob pattern of files to be refreshed."
 | 
						|
        exit 1;
 | 
						|
    fi
 | 
						|
 | 
						|
    local allFound=true;
 | 
						|
    
 | 
						|
    for f in $FILES; do
 | 
						|
        local srcPath="$LATEST/$f";
 | 
						|
        local destPath="$CACHE/$f";
 | 
						|
        local destDir=`dirname $destPath`;
 | 
						|
        if [[ -e $srcPath ]]; then
 | 
						|
            [[ -d "$destDir" ]] || (set -x; mkdir $destDir);
 | 
						|
            case "$f" in
 | 
						|
                (*$FILE_PATTERN*)
 | 
						|
                    (set -x; cp $srcPath $destPath);;
 | 
						|
                (*)
 | 
						|
                    echo "SKIPPED $f";;
 | 
						|
            esac
 | 
						|
        else
 | 
						|
            echo Cannot find $srcPath
 | 
						|
            allFound=false;
 | 
						|
        fi
 | 
						|
    done
 | 
						|
 | 
						|
    [[ $allFound ]] || exit 1;
 | 
						|
}
 | 
						|
 | 
						|
function cacheDiffSummary() {
 | 
						|
    diff -qr -x "_*.*" "$CACHE/" "$LATEST/" | \
 | 
						|
        grep -v "^Only in"
 | 
						|
}
 | 
						|
 | 
						|
function cacheDiff() {
 | 
						|
    local FILES="*$1*"
 | 
						|
    cd $CACHE;
 | 
						|
    # List files
 | 
						|
    find . -name "$FILES" ! -name "*~" -exec diff -q {} ../latest/{} \;
 | 
						|
    # Show differences
 | 
						|
    find . -name "$FILES" ! -name "*~" -exec diff    {} ../latest/{} \;
 | 
						|
}
 | 
						|
 | 
						|
function usage() {
 | 
						|
    echo "Usage: cache.sh [options]"
 | 
						|
    echo "  (-ds|--diff-summary)  list names of cache files that differ from ts/latest"
 | 
						|
    echo "  (-d|--diff) pat       diff cache and latest subdirectories"
 | 
						|
    echo "  (-l|--list)           list files subject to caching"
 | 
						|
    echo "  (-r|--refresh) pat    refresh files in cache matching pattern"
 | 
						|
}
 | 
						|
 | 
						|
case "$1" in
 | 
						|
    (-ds|--diff-summary)  shift; cacheDiffSummary $@;;
 | 
						|
    (-d|--diff)           shift; cacheDiff $@;;
 | 
						|
    (-l|--list)           shift; printf "$FILES\n\n";;
 | 
						|
    (-r|--refresh)        shift; cacheRefresh $@;;
 | 
						|
    (*)   usage;
 | 
						|
esac
 |