initial commit to build a test suite

This commit is contained in:
Ryan Delaney 2014-06-05 14:58:49 -07:00
parent bf7ee7e399
commit 6277ce8223

117
buildsuite Executable file
View file

@ -0,0 +1,117 @@
#!/usr/bin/env bash
# GNU bash, version 4.3.18(1)-release (x86_64-unknown-linux-gnu)
#
# © Copyright 2014 Ryan Delaney.
# 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.
#
# 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.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Functions {{{1
verbose() {
if [[ "$verbose" = "1" ]]; then
echo "$1" >&2
fi
}
error() {
echo "$1" >&2
}
# }}}
# Usage {{{1
#
usage() {
cat <<EOD
buildtest
Web site: http://github.com/trapd00r/LS_COLORS
© Copyright 2014 Ryan Delaney.
buildtest builds a test suite for LS_COLORS
Usage: buildtest [OPTION]
Options
-?, --help print this help and exit
-v, --verbose increase verbosity
EOD
exit 1
}
# }}}
# Parameters {{{1
#
while :
do
case $1 in
--help | -\?)
usage
exit 0
;;
-v | --verbose)
# Each instance of -v adds 1 to verbosity
local verbose=$((verbose+1))
shift
;;
--) # End of all options
shift
break
;;
-*)
echo "FATAL: Unknown option : $1" >&2
exit 1
shift
;;
*) # no more options. Stop while loop
break
;;
esac
done
# }}}
# Dependencies {{{
if ! type sed &> /dev/null; then echo "ERROR: Missing dependency: sed" 1>&2; exit 1; fi
# }}}
if [[ ! -d "./test" ]]; then mkdir test || exit 1; fi
cd test || exit 1
# File
touch FILE
# Executable file
touch EXECUTABLE
chmod +x EXECUTABLE
# Directory
mkdir DIRECTORY
# Symlink
ln -s FILE SYMLINK
# Hardlink
touch HARDLINK1
ln HARDLINK1 HARDLINK2
# Create a link to nowhere
touch nothing
ln -s nothing ORPHAN
rm nothing
# World-writable
touch WORLDWRITEABLE
chmod 0777 WORLDWRITEABLE
# Supported extensions
while read line; do
:
# echo "$line"
done < <(sed -e '/^[ ]+#/d' ../LS_COLORS)
# vim: ft=sh foldmethod=marker: