[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
www/audio-video/workshop add-entry av-create av...
From: |
Therese Godefroy |
Subject: |
www/audio-video/workshop add-entry av-create av... |
Date: |
Fri, 11 Nov 2022 10:14:03 -0500 (EST) |
CVSROOT: /webcvs/www
Module name: www
Changes by: Therese Godefroy <th_g> 22/11/11 10:14:03
Modified files:
audio-video/workshop: add-entry av-create av-edit avgen
convert-entry sort-media
Added files:
audio-video/workshop: init-tmp
Log message:
CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/audio-video/workshop/add-entry?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/audio-video/workshop/av-create?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/audio-video/workshop/av-edit?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/audio-video/workshop/avgen?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/audio-video/workshop/convert-entry?cvsroot=www&r1=1.3&r2=1.4
http://web.cvs.savannah.gnu.org/viewcvs/www/audio-video/workshop/sort-media?cvsroot=www&r1=1.1&r2=1.2
http://web.cvs.savannah.gnu.org/viewcvs/www/audio-video/workshop/init-tmp?cvsroot=www&rev=1.1
Patches:
Index: add-entry
===================================================================
RCS file: /webcvs/www/www/audio-video/workshop/add-entry,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- add-entry 9 Nov 2022 17:54:49 -0000 1.1
+++ add-entry 11 Nov 2022 15:14:00 -0000 1.2
@@ -4,15 +4,14 @@
# Called from av-create, av-edit and avgen.
# Public domain.
-# Last updated 2022-11-07.
-# Report bugs to thg@gnu.org.
+# Last updated 2022-11-10.
+# Please report bugs to thg@gnu.org.
function add_entry () {
- media_html=$(mktemp -t av.XXXXXX) || (echo 1>&2 "Can't make media_html";
exit 1)
- entry_html=$(mktemp -t av.XXXXXX) || (echo 1>&2 "Can't make entry_html";
exit 1)
- trap 'rm -f "$media_html" "$entry_html"' EXIT
+ media_html=$(make_temp media_html)
+ entry_html=$(make_temp entry_html)
if [ -s "$1" ]; then
id=$(grep 'Id: ' $1 | sed 's,^Id: ,,')
Index: av-create
===================================================================
RCS file: /webcvs/www/www/audio-video/workshop/av-create,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- av-create 9 Nov 2022 17:54:49 -0000 1.1
+++ av-create 11 Nov 2022 15:14:00 -0000 1.2
@@ -7,19 +7,19 @@
# run it without argument.
# Public domain.
-# Last updated 2022-11-07.
+# Last updated 2022-11-10.
# Please report bugs to thg@gnu.org.
set -e
set -o pipefail
export LANG=en_US.UTF-8
+. init-tmp
. add-entry
. convert-entry
. sort-media
-entry_rec=$(mktemp -t av.XXXXXX) || (echo 1>&2 "Can't make entry_rec"; exit 1)
-trap 'rm -f "$entry_rec"' EXIT
+entry_rec=$(make_temp entry_rec)
if [ ! -s entry ]; then
echo 1>&2 "!!! The 'entry' file doesn't exist; exit."
Index: av-edit
===================================================================
RCS file: /webcvs/www/www/audio-video/workshop/av-edit,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- av-edit 9 Nov 2022 17:54:49 -0000 1.1
+++ av-edit 11 Nov 2022 15:14:00 -0000 1.2
@@ -9,12 +9,13 @@
# Run the script with the id of the entry as argument: av-edit ID
# Public domain.
-# Last updated 2022-11-09.
+# Last updated 2022-11-10.
# Please report bugs to thg@gnu.org.
set -e
set -o pipefail
+. init-tmp
. add-entry
. convert-entry
. sort-media
@@ -29,8 +30,7 @@
if [ -n "$id" ]; then
id_attr="id=\"$id\""
- entry_rec=$(mktemp -t av.XXXXXX) || (echo 1>&2 "Can't make entry_rec"; exit
1)
- trap 'rm -f "$entry_rec"' EXIT
+ entry_rec=$(make_temp entry_rec)
awk -v pattern=$id_attr '
BEGIN { RS = ORS = "\n\n"; found = 0 }
Index: avgen
===================================================================
RCS file: /webcvs/www/www/audio-video/workshop/avgen,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- avgen 9 Nov 2022 17:54:50 -0000 1.1
+++ avgen 11 Nov 2022 15:14:00 -0000 1.2
@@ -5,19 +5,19 @@
# Run this script without argument.
# Public domain.
-# Last updated 2022-11-09.
+# Last updated 2022-11-10.
# Please report bugs to thg@gnu.org.
set -e
set -o pipefail
+. init-tmp
. convert-entry
. sort-media
-entry_rec=$(mktemp -t av.XXXXXX) || (echo 1>&2 "Can't make entry_rec"; exit
1)
-entry_html=$(mktemp -t av.XXXXXX) || (echo 1>&2 "Can't make entry_html"; exit
1)
-media_html=$(mktemp -t av.XXXXXX) || (echo 1>&2 "Can't make media_html"; exit
1)
-trap 'rm -f "$entry_rec" "$entry_html" "$media_html"' EXIT
+entry_rec=$(make_temp entry_rec)
+entry_html=$(make_temp entry_html)
+media_html=$(make_temp media_html)
printf '<!--#set var="comment" value="
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Index: convert-entry
===================================================================
RCS file: /webcvs/www/www/audio-video/workshop/convert-entry,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- convert-entry 10 Nov 2022 13:38:17 -0000 1.3
+++ convert-entry 11 Nov 2022 15:14:00 -0000 1.4
@@ -2,15 +2,14 @@
# Called from avgen and av_add.
-# Public domain
-# Last updated 2022-11-09.
+# Public domain.
+# Last updated 2022-11-10.
# Please report bugs to thg@gnu.org.
function convert_entry () {
- tmp=$(mktemp -t av.XXXXXX) || (echo 1>&2 "Can't make tmp"; exit 1)
- trap 'rm -f "tmp"' EXIT
+ tmp=$(make_temp 'convert_entry')
# Remove any linefeed between field name and data;
# remove empty fields (except By),
Index: sort-media
===================================================================
RCS file: /webcvs/www/www/audio-video/workshop/sort-media,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- sort-media 9 Nov 2022 17:54:50 -0000 1.1
+++ sort-media 11 Nov 2022 15:14:02 -0000 1.2
@@ -3,49 +3,46 @@
# Called from av_add and avgen.
-# Public domain
-# Last updated 2022-11-09.
+# Public domain.
+# Last updated 2022-11-10.
# Please report bugs to thg@gnu.org.
function sort_media () {
echo "${0##*\/}: Sorting media.html."
+ if [ ! -s "$1" ]; then
+ echo "media.html is empty or doesn't exist."
+ exit 1
+ fi
+ p1=$(make_temp p1)
+ p2=$(make_temp p2)
+ p3=$(make_temp p3)
- rm -f /tmp/f1 /tmp/f2 /tmp/f3
-
- if [ -s "$1" ]; then
# Split the list in 2: introductory, and other.
- awk '
+ awk -v p1="$p1" -v p2="$p2" -v p3="$p3" '
BEGIN { RS = ORS = "\n\n" }
- /~~~~~~~~~~~~~~/ { print > "/tmp/f3" }
- /class="introductory"/ { print > "/tmp/f1" }
- !/class="introductory"/ && !/~~~~~~~~~~~~~~/ { print > "/tmp/f2" }
+ /~~~~~~~~~~~~~~/ { print > p3 }
+ /class="introductory"/ { print > p1 }
+ !/class="introductory"/ && !/~~~~~~~~~~~~~~/ { print > p2 }
' $1
# Sort the sublists separately in reverse chronological order,
# and concatenate.
- for c in 1 2; do
- awk '
+ for p in "$p1" "$p2"; do
+ awk -v p3="$p3" '
BEGIN { RS = ORS = "\n\n" }
{
n = NR
- i[n] = gensub (/.*id="[a-z]+-([0-9]{9}).*/, "\\1", "1" $0)
+ i[n] = gensub(/.*id="[a-z]+-([0-9]{9}).*/, "\\1", 1)
a[i[n]] = $0
}
END {
asort(i)
- for (j = n; j > 0; j--) { print a[i[j]] >> "/tmp/f3" }
- }' /tmp/f$c
+ for (j = n; j > 0; j--) { print a[i[j]] >> p3 }
+ }' "$p"
done
# Remove extra blank lines, added by awk.
- sed ':a /^$/ { N;N; s,\n\n$,,; ba }' /tmp/f3 > $1
-
- rm -f /tmp/f1 /tmp/f2 /tmp/f3
-
- else
- echo "media.html is empty or doesn't exist."
- exit 1
- fi
+ sed ':a /^$/ { N;N; s,\n\n$,,; ba }' "$p3" > $1
}
Index: init-tmp
===================================================================
RCS file: init-tmp
diff -N init-tmp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ init-tmp 11 Nov 2022 15:14:02 -0000 1.1
@@ -0,0 +1,14 @@
+# Initialize temporary structures.
+# Public domain.
+# Initially written by Ineiev <ineiev@gnu.org>.
+TMPDIR=${TMPDIR:-/tmp}
+temp_dir=$(mktemp -p "$TMPDIR" -d av.XXXXXX \
+ || { echo 1>&2 "Can't make temporary directory."; exit 1;} )
+
+function make_temp ()
+{
+ mktemp -p "$temp_dir" "$1".XXXXXX \
+ || (echo 1>&2 "Can't make $1"; exit 1)
+}
+
+trap 'rm -fr "$temp_dir"' EXIT