#!/usr/bin/env guile -*- scheme -*- !# ;;; check-trailing-newline -- Find files lacking a trailing newline ;;; Use guile 2 (not 1.8) ;;; Copyright (C) 2015 Mark H Weaver <mhw@netris.org> ;;; ;;; This program is free software: you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation, either version 3 of the License, or ;;; (at your option) any later version. ;;; ;;; This program 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 General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with this program. If not, see <http://www.gnu.org/licenses/>. (use-modules (ice-9 match) (rnrs io ports)) (define (check-file file-name) (let ((contents (call-with-input-file file-name get-string-all))) (unless (string-suffix? "\n" contents) (format (current-error-port) "~a: lacks trailing newline\n" file-name)))) (match (command-line) ((_ file-names ...) (for-each check-file file-names)))