xref: /spdk/scripts/eofnl (revision eb53c23236cccb6b698b7ca70ee783da1c574b5f)
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