#!/usr/bin/env bash # # $Id: fmd-todo,v 1.1 2025/04/10 02:17:49 snw Exp $ # Find files that need work # # # Author: Serena Willis # Copyright (C) 2025 Coherent Logic Development LLC # # # This file is part of FreeM. # # FreeM is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # FreeM is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero Public License for more details. # # You should have received a copy of the GNU Affero Public License # along with FreeM. If not, see . # # $Log: fmd-todo,v $ # Revision 1.1 2025/04/10 02:17:49 snw # Add fmd-todo # # # SPDX-FileCopyrightText: (C) 2025 Coherent Logic Development LLC # SPDX-License-Identifier: AGPL-3.0-or-later # PGM=$(basename $0) SCRIPT_DIR=$(dirname "$0") source "${SCRIPT_DIR}/_fmd_common.bash" function usage() { echo echo "Finds FreeM source files with TODO comments" echo echo "usage: " echo echo " fmd todo" echo exit 0 } if [[ $1 == "help" ]] then usage fi if [[ $# == 0 ]] then echo "lint: must be run from 'fmd lint'" exit 1 fi FMD=$1 for FILE in src/*.[ch] do grep "TODO:" "${FILE}" &> /dev/null if [[ $? == 0 ]] then TMPF=$(mktemp) cat "${FILE}" | nl -ba > ${TMPF} echo "${FILE}:" while read LINE do LNO=$(echo "${LINE}" | awk '{ print $1 }') echo "${LINE}" | grep "TODO:" &> /dev/null if [[ $? == 0 ]] then RPART=$(echo "${LINE}" | cut -d: -f2 | sed 's/\*\///g') printf "\t- %s: %s\n" "${LNO}" "${RPART}" fi done < "${TMPF}" rm -f "${TMPF}" fi done