42 строки
1.0 KiB
Bash
Executable File
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
|