Check-in [2fdb28505d]
Overview
Comment:Add a manual link for releases
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 2fdb28505d4bfe095b3684db717cc65950415951b0a898cb84d2196fe9a5cfc8
User & Date: rkeene on 2018-07-11 16:47:46.227
Other Links: manifest | tags
Context
2018-07-11
16:49
Updated to extract manual page correctly check-in: e607386a51 user: rkeene tags: trunk
16:47
Add a manual link for releases check-in: 2fdb28505d user: rkeene tags: trunk
16:28
Added a "filter" JSON command to filter out attributes which other implementations hate check-in: 3a03259f8f user: rkeene tags: trunk
Changes
42
43
44
45
46
47
48

49
50
51
52
53
54
55













56
57
58
59
60
61
62
63
64
65

66
67
68
69




70
71
72
73








74
75
76
77
78
79

80
81
	fi

	echo 'Tcl Nano'
	echo '========'
	echo ''
	echo "Current release: **${version}**"
	echo ''

	echo '  - Downloads:'
	echo "    - [Source](/uv/${tarball}) <small>(SHA2-256: ${sha256})</small>"
	echo ''
	echo "Older releases may be found in the [archives](/uvlist)."

	return 0
}














# Ensure we are operating in the root of the checkout
cd "$(dirname "${BASH_SOURCE[0]}")/.."

# Update the repository
fossil sync
fossil uv sync

# Determine latest release
tclNanoVersion="$(fossil uv ls | sed 's/^releases\/tcl-nano-\(.*\)\.tar\.gz/\1/;t;d' | sort --version-sort | tail -n 1)"

tclNanoTarball="releases/tcl-nano-${tclNanoVersion}.tar.gz"
tclNanoReleaseDate="$(fossil uv cat "${tclNanoTarball}" 2>/dev/null | gzip -dc 2>/dev/null | tar -tvf - 2>/dev/null | awk '{ print $4 }')"
tclNanoTarballSHA256="$(fossil uv cat "${tclNanoTarball}" 2>/dev/null | openssl dgst -sha256 | sed 's/.*= *//')"





# Generate the new manual page entry
manPage="$(groff -mandoc -Thtml nano.man | sed -r 's@</*(body|html)( [^>]*|)>@@g;/<head>/,/<\/head>/ d' | sed "s/@@VERS@@/${tclNanoVersion}/g;s/@@SHORT_DATE@@/${tclNanoRelaseDate}/g" | sed 's/\[/\&#91;/g;s/\]/\&#93;/g' | tail -n +5)"
updatePage "${wikiPageManual}" "${manPage}"









# Generate the new download page entry
downloadsPage="$(generateDownloads "${tclNanoVersion}" "${tclNanoTarball}" "${tclNanoTarballSHA256}")"
updatePage "${wikiPageDownloads}" "${downloadsPage}" 'markdown'

# Push changes if any have been made
fossil sync


exit 0







>







>
>
>
>
>
>
>
>
>
>
>
>
>









|
>
|
|
|

>
>
>
>
|
|
|

>
>
>
>
>
>
>
>

|




>


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
	fi

	echo 'Tcl Nano'
	echo '========'
	echo ''
	echo "Current release: **${version}**"
	echo ''
	echo "  - [Manual](/uv/manuals/tcl-nano-${version}-manual.pdf)"
	echo '  - Downloads:'
	echo "    - [Source](/uv/${tarball}) <small>(SHA2-256: ${sha256})</small>"
	echo ''
	echo "Older releases may be found in the [archives](/uvlist)."

	return 0
}

# Determine if a Fossil UV file exists
function fossilUVExists() {
	local file

	file="$1"

	if fossil uv cat "${file}" 2>/dev/null | grep '^' >/dev/null; then
		return 0
	fi

	return 1
}

# Ensure we are operating in the root of the checkout
cd "$(dirname "${BASH_SOURCE[0]}")/.."

# Update the repository
fossil sync
fossil uv sync

# Determine latest release
tclNanoReleaseVersion="$(fossil uv ls | sed 's/^releases\/tcl-nano-\(.*\)\.tar\.gz/\1/;t;d' | sort --version-sort | tail -n 1)"
tclNanoReleaseManualPDF="manuals/tcl-nano-${tclNanoReleaseVersion}.pdf"
tclNanoReleaseTarball="releases/tcl-nano-${tclNanoReleaseVersion}.tar.gz"
tclNanoReleaseDate="$(fossil uv cat "${tclNanoReleaseTarball}" 2>/dev/null | gzip -dc 2>/dev/null | tar -tvf - 2>/dev/null | awk '{ print $4 }')"
tclNanoReleaseTarballSHA256="$(fossil uv cat "${tclNanoReleaseTarball}" 2>/dev/null | openssl dgst -sha256 | sed 's/.*= *//')"

# Determine current development version
tclNanoDevelopmentVersion="$(awk '/^AC_INIT\(/{ sub(/^AC_INIT\([^,]*, */, ""); sub(/[,\)].*$/, ""); print; }' < configure.ac)"
tclNanoDevelopmentDate="$(date +%d-%b-%Y)"

# Generate the new manual page entry for the development version
developmentManPage="$(groff -mandoc -Thtml nano.man | sed -r 's@</*(body|html)( [^>]*|)>@@g;/<head>/,/<\/head>/ d' | sed "s/@@VERS@@/${tclNanoDevelopmentVersion}/g;s/@@SHORT_DATE@@/${tclNanoDevelopmentDate}/g" | sed 's/\[/\&#91;/g;s/\]/\&#93;/g' | tail -n +5)"
updatePage "${wikiPageManual}" "${developmentManPage}"

# Generate a PDF manual page for the release version, if it does not already exist
if ! fossilUVExists "${tclNanoReleaseManualPDF}"; then
	tclNanoReleaseManualPDFTmp="$(mktemp -u)"
	fossil uv cat "${tclNanoReleaseTarball}" 2>/dev/null | gzip -dc 2>/dev/null | tar -xOf - '*/nano.man' | groff -mandoc -Tpdf > "${tclNanoReleaseManualPDFTmp}"
	fossil uv add "${tclNanoReleaseManualPDFTmp}" --as "${tclNanoReleaseManualPDF}"
	rm -f "${tclNanoReleaseManualPDFTmp}"
fi

# Generate the new download page entry
downloadsPage="$(generateDownloads "${tclNanoReleaseVersion}" "${tclNanoReleaseTarball}" "${tclNanoReleaseTarballSHA256}")"
updatePage "${wikiPageDownloads}" "${downloadsPage}" 'markdown'

# Push changes if any have been made
fossil sync
fossil uv sync

exit 0