update file_list.txt via new the gen_file_list.sh tool
This commit is contained in:
1 parent
c0e84b0635
commit
c5fa6d6d11
3 files changed
+888
-1353
No files matched your search
@@ -320,6 +320,8 @@ names found in [example.dot_winner.json](example.dot_winner.json).
|
||||
A list of files that exist, or should exist once the tools to generate certain files,
|
||||
such as the `index.html`, or the `.winner.json` files for each entry, are created.
|
||||
|
||||
This file is created by [gen_file_list.sh}(gen_file_list.sh).
|
||||
|
||||
|
||||
### [fix_numbers_csv.sh](fix_numbers_csv.sh)
|
||||
|
||||
@@ -374,6 +376,11 @@ rm -rf ../author ; ./gen_author_json.sh author_handle.txt author.csv author_win
|
||||
```
|
||||
|
||||
|
||||
### [gen_file_list.sh](gen_file_list.sh)
|
||||
|
||||
After doing a `make clobber` this tool updates, if needed, [file_list.txt](file_list.txt).
|
||||
|
||||
|
||||
### [manifest.numbers](manifest.numbers)
|
||||
|
||||
|
||||
|
||||
+721
-1353
File diff suppressed because it is too large.
Load diff
Executable
+160
@@ -0,0 +1,160 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# gen_file_list.sh - generate tmp/file_list.txt for entry directories under a year
|
||||
#
|
||||
# Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software and
|
||||
# its documentation for any purpose and without fee is hereby granted,
|
||||
# provided that the above copyright, this permission notice and text
|
||||
# this comment, and the disclaimer below appear in all of the following:
|
||||
#
|
||||
# supporting documentation
|
||||
# source copies
|
||||
# source works derived from this source
|
||||
# binaries derived from this source or from derived source
|
||||
#
|
||||
# LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||
# EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||
# USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
# chongo (Landon Curt Noll, http://www.isthe.com/chongo/index.html) /\oo/\
|
||||
#
|
||||
# Share and enjoy! :-)
|
||||
|
||||
# setup
|
||||
#
|
||||
export VERSION="1.0 2023-10-26"
|
||||
NAME=$(basename "$0"); export NAME
|
||||
TOPDIR=".."
|
||||
#
|
||||
export V_FLAG=0
|
||||
|
||||
# usage
|
||||
#
|
||||
export USAGE="usage: $0 [-h] [-v level] [-V] [-t topdir]
|
||||
|
||||
-h print help message and exit
|
||||
-v level set verbosity level (def level: $V_FLAG)
|
||||
-V print version string and exit
|
||||
|
||||
-t topdir top directory under which year dirs are found (def: ..)
|
||||
|
||||
Exit codes:
|
||||
0 all OK
|
||||
2 -h and help string printed or -V and version string printed
|
||||
3 command line error
|
||||
>= 10 internal error
|
||||
|
||||
$NAME version: $VERSION"
|
||||
|
||||
# parse command line
|
||||
#
|
||||
while getopts :hv:Vt: flag; do
|
||||
case "$flag" in
|
||||
h) echo "$USAGE"
|
||||
exit 2
|
||||
;;
|
||||
v) V_FLAG="$OPTARG"
|
||||
;;
|
||||
V) echo "$VERSION"
|
||||
exit 2
|
||||
;;
|
||||
t) TOPDIR="$OPTARG"
|
||||
;;
|
||||
\?) echo "$0: ERROR: invalid option: -$OPTARG" 1>&2
|
||||
echo 1>&2
|
||||
echo "$USAGE" 1>&2
|
||||
exit 3
|
||||
;;
|
||||
:) echo "$0: ERROR: option -$OPTARG requires an argument" 1>&2
|
||||
echo 1>&2
|
||||
echo "$USAGE" 1>&2
|
||||
exit 3
|
||||
;;
|
||||
*) echo "$0: ERROR: unexpected value from getopts: $flag" 1>&2
|
||||
echo 1>&2
|
||||
echo "$USAGE" 1>&2
|
||||
exit 3
|
||||
;;
|
||||
esac
|
||||
done
|
||||
#
|
||||
# remove the options
|
||||
#
|
||||
shift $(( OPTIND - 1 ));
|
||||
#
|
||||
# verify arg count
|
||||
#
|
||||
if [[ $# -ne 0 ]]; then
|
||||
echo "$0: ERROR: expected 0 args, found: $#" 1>&2
|
||||
echo "$USAGE" 1>&2
|
||||
exit 3
|
||||
fi
|
||||
#
|
||||
# verify TOPDIR
|
||||
#
|
||||
if [[ -z $TOPDIR ]]; then
|
||||
echo "$0: ERROR: TOPDIR is empty" 1>&2
|
||||
exit 3
|
||||
fi
|
||||
if [[ ! -d $TOPDIR ]]; then
|
||||
echo "$0: ERROR: TOPDIR: $TOPDIR is not directory" 1>&2
|
||||
exit 3
|
||||
fi
|
||||
if [[ ! -d $TOPDIR/1984 ]]; then
|
||||
echo "$0: ERROR: TOPDIR: $TOPDIR is missing the 1984 sub-directory" 1>&2
|
||||
exit 3
|
||||
fi
|
||||
if [[ ! -d $TOPDIR/tmp ]]; then
|
||||
echo "$0: ERROR: TOPDIR: $TOPDIR is missing the tmp sub-directory" 1>&2
|
||||
exit 3
|
||||
fi
|
||||
if [[ ! -f $TOPDIR/Makefile ]]; then
|
||||
echo "$0: ERROR: TOPDIR: $TOPDIR is missing the top level Makefile" 1>&2
|
||||
exit 3
|
||||
fi
|
||||
|
||||
# move to TOPDIR
|
||||
#
|
||||
cd "$TOPDIR" || echo "$0: ERROR: cd $TOPDIR failed, error code: $status" 1>&2 || exit 10
|
||||
export FILE_LIST="tmp/file_list.txt"
|
||||
|
||||
# make clobber
|
||||
#
|
||||
make clobber >/dev/null 2>&1
|
||||
status="$?"
|
||||
if [[ $status -ne 0 ]]; then
|
||||
echo "$0: ERROR: make clobber failed, error code: $status" 1>&2
|
||||
exit 11
|
||||
fi
|
||||
|
||||
# find files under 4 character dirs
|
||||
#
|
||||
TMPFILE="tmp/tmp.file_list.txt.$$"
|
||||
trap 'rm -f $TMPFILE; exit' 0 1 2 3 15
|
||||
find -- ???? -mindepth 2 -type f -print | sort -d > "$TMPFILE"
|
||||
if [[ ! -s $TMPFILE ]]; then
|
||||
echo "$0: ERROR: TMPFILE: $TMPFILE is empty" 1>&2
|
||||
exit 12
|
||||
fi
|
||||
if ! cmp -s "$TMPFILE" "$FILE_LIST"; then
|
||||
|
||||
# replace the file list
|
||||
#
|
||||
echo "$0: updating $FILE_LIST"
|
||||
mv -f -v "$TMPFILE" "$FILE_LIST"
|
||||
status="$?"
|
||||
if [[ $status -ne 0 ]]; then
|
||||
echo "$0: ERROR: mv -f -v $TMPFILE $FILE_LIST failed, error: $status" 1>&2
|
||||
exit 13
|
||||
fi
|
||||
fi
|
||||
|
||||
# All Done!!! -- Jessica Noll, Age 2
|
||||
#
|
||||
exit 0
|
||||
Reference in new issue
Block a user