Compare commits

...

2 Commits

Author SHA1 Message Date
davidovski 8ccb4fed2f Add todo 2024-03-21 11:33:46 +00:00
davidovski 14b7eb50d3 do not rebuild files that haven't changed 2024-03-21 11:33:45 +00:00
1 changed files with 22 additions and 8 deletions

View File

@ -8,6 +8,13 @@ usage () {
exit 1
}
# check if a file has changed since last generating
#
newer () {
# TODO account for dependencies that have change
[ ! -e "$2" ] || [ "$1" -nt "$2" ]
}
while getopts ":o:i:h" opt; do
case "$opt" in
o)
@ -29,22 +36,29 @@ process () {
dirpath="${1%"${1##*/}"}"
out_file="${OUTPUT_DIR}${path}"
printf "%s ...\n" "$path"
[ -d "$1" ] && {
mkdir -p "$out_file"
for f in "$1"/*; do
process "$f"
done
return 0
} || [ -x "$1" ] && (
# execute the file
cd "$dirpath"
"$1" > "${out_file}"
} || [ -x "$1" ] && {
newer "$1" "$out_file" && (
# execute the file
cd $dirpath
printf "#!%s\n" "$path"
"$1" > "$out_file"
)
return 0
) || {
# just copy the file as is
cp "$1" "$out_file"
} || {
newer "$1" "$out_file" && (
# just copy the file as is
printf "%s\n" "$path"
cp "$1" "$out_file"
)
return 0
}
}