157a1e893SDaniel Verkamp#!/usr/bin/env bash 2*eb53c232Spaul luse# SPDX-License-Identifier: BSD-3-Clause 3*eb53c232Spaul luse# Copyright (C) 2016 Intel Corporation 4*eb53c232Spaul luse# All rights reserved. 5*eb53c232Spaul luse 657a1e893SDaniel Verkamp# Make sure file has a trailing newline 757a1e893SDaniel Verkamp 857a1e893SDaniel Verkampf="$1" 957a1e893SDaniel Verkamp 1057a1e893SDaniel Verkampif [ -z "$f" ]; then 1157a1e893SDaniel Verkamp echo "usage: $0 <file>" 1257a1e893SDaniel Verkamp exit 1 1357a1e893SDaniel Verkampfi 1457a1e893SDaniel Verkamp 151a37acdaSDaniel Verkampif [ ! -f "$f" ]; then 161a37acdaSDaniel Verkamp exit 0 171a37acdaSDaniel Verkampfi 181a37acdaSDaniel Verkamp 191a37acdaSDaniel Verkampif [[ $(tail -c1 "$f") ]]; then 2057a1e893SDaniel Verkamp echo "$f: No newline at end of file" 2157a1e893SDaniel Verkamp echo '' >> "$f" 2257a1e893SDaniel Verkamp exit 1 2357a1e893SDaniel Verkampfi 241a37acdaSDaniel Verkamp 251a37acdaSDaniel Verkampif [[ ! $(tail -c2 "$f") ]]; then 261a37acdaSDaniel Verkamp echo "$f: Extra trailing newline" 271a37acdaSDaniel Verkamp exit 1 281a37acdaSDaniel Verkampfi 291a37acdaSDaniel Verkamp 30c0b0afd4SDaniel Verkampif grep -q $'\r' "$f"; then 31c0b0afd4SDaniel Verkamp echo "$f: DOS-style newlines" 32c0b0afd4SDaniel Verkamp dos2unix "$f" &> /dev/null 33c0b0afd4SDaniel Verkamp exit 1 34c0b0afd4SDaniel Verkampfi 35c0b0afd4SDaniel Verkamp 36e50cc5fdSDaniel Verkampif grep -q $'[\t ]$' "$f"; then 37e50cc5fdSDaniel Verkamp echo "$f: Trailing whitespace" 38e50cc5fdSDaniel Verkamp sed -i $'s/[ \t]*$//' "$f" 39e50cc5fdSDaniel Verkamp exit 1 40e50cc5fdSDaniel Verkampfi 41e50cc5fdSDaniel Verkamp 421a37acdaSDaniel Verkampexit 0 43