docs/tutorial/prepare.sh
author Anton Shestakov <av6@dwimlabs.net>
Fri, 06 Sep 2019 12:53:46 +0700
branchstable
changeset 4829 6b82b4f72347
parent 3376 aad37ffd7d58
permissions -rwxr-xr-x
stack: make a deep copy of `dependencies` before modifying its items The algorithm later on in this method uses .remove() to remove individual elements from items in dependencies, which before this patch modified the cached property contents. So for further use that dictionary was in the form of {1: set([])}, i.e. all sets were empty. This deep copy block could be way simpler, but the problem is that sometimes we get lists of _succs() from evolvebits.builddependencies(). Note: this happens only in topic's stack version of builddependencies() and it looks like a suboptimal way to handle multiple successors (see evolve's counterpart function). stack.builddependencies method is removed, it has served its purpose (see the previous patch).

#!/bin/bash
set -euo pipefail

# Prepare pandoc filters
if [ -d pandocfilters/.git ]; then
    (cd pandocfilters && git remote update && git merge --ff-only)
else
    git clone https://github.com/Lothiraldan/pandocfilters.git
fi

pip2 install pandocfilters
pip2 install pygraphviz
pip2 install panflute
pip2 install hg+https://bitbucket.org/octobus/mercurial_docgraph
pip2 install hg-evolve

mkdir -p graphs output

CMD_NOT_FOUND=0
check_command() {
    cmd=$1
    if ! which "$cmd" >/dev/null 2>&1; then
        echo "Error: command '$cmd' not found in \$PATH"
        echo "Please install '$cmd'"
        CMD_NOT_FOUND=1
    else
        echo "$cmd command was found"
    fi
}

check_command pandoc
check_command aha

if [ "$CMD_NOT_FOUND" -ne "0" ]; then
    exit 1
fi

# Prepare directory for repositories generated by the training.t file
mkdir -p base-repos

rm -Rf base-repos/*