From 251047496c607548f8200ebf648039fa821e719b Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Tue, 21 Sep 2021 21:05:36 +0100 Subject: clean: always manually remove, use redo-targets to check clean will now always use the non-redo-targets clean method, but if redo-targets is available it will check that there's nothing missing from the logic. This isn't bulletproof but it's better than having a working clean when using a redo with redo-targets and then having a broken clean logic because I forgot to add something when not using a redo-targets redo. --- clean | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/clean b/clean index 930d2b6..9361998 100755 --- a/clean +++ b/clean @@ -1,8 +1,17 @@ -#!/bin/sh +#!/bin/bash + if command -v redo-targets >/dev/null 2>&1; then - redo-targets | tr '\n' '\0' | xargs -r0 rm -f -else - find . -type f \( -name '*.o' -o -name '*.inc' -o -name '*.tool' \) \ - -exec rm -f {} + - rm -f .vars.rc all compile_flags.txt libpack test test_gen + mapfile -t targets < <(redo-targets) fi + +rm -f .vars.rc all compile_commands.json libpack test test_gen +find . -type f \ + \( -name '*.cmd' -o -name '*.inc' -o -name '*.o' -o -name '*.tool' \) \ + -delete + +for t in "${targets[@]}"; do + if [ -e "$t" ]; then + echo "$0: Missed '$t'. Removing!" >&2 + rm "$t" + fi +done -- cgit v1.2.3-54-g00ecf