website/tour/tools/map.sh

42 строки
1.0 KiB
Bash
Executable File

#!/bin/sh
# Copyright 2011 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
# This code parses mapping.old and finds a correspondence from the old
# urls (e.g. #42) to the corresponding path (e.g. /concurrency/3).
function findURL {
title="$1"
file=$(grep -l "* $title\$" *.article)
if [[ -z $file ]]
then
echo "undefined"
return 1
fi
titles=$(grep "^* " $file | awk '{print NR, $0}')
page=$(echo "$titles" | grep "* $title\$" | awk '{print $1}')
if [[ $(echo "$page" | wc -l) -gt "1" ]]
then
echo "multiple matches found for $title; find 'CHOOSE BETWEEN' in the output" 1>&2
page="CHOOSE BETWEEN $page"
fi
page=$(echo $page)
lesson=$(echo "$file" | rev | cut -c 9- | rev)
echo "'/$lesson/$page'"
return 0
}
mapping=`cat mapping.old`
pushd ../content
echo "$mapping" | while read page; do
num=$(echo "$page" | awk '{print $1}')
title=$(echo "$page" | sed "s/[0-9]* //")
url=$(findURL "$title")
echo " '#$num': $url, // $title"
done
popd > /dev/null