#!/bin/sh # Copyright (C) 2012,2015 Codethink Limited # # 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; version 2 of the License. # # 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 . # List contents of a directory tree in a reproducible manner: only include # details that we care about, and that won't be changing between test runs # or test environments. set -eu shorttype(){ case "$*" in "directory") echo d ;; "regular file"|"regular empty file") echo f ;; "symbolic link") echo l ;; *) echo "$*" >&2 echo U ;; esac } export LC_ALL=C cd "$1" find | while read file; do printf "%s %s\n" "$(shorttype $(stat -c %F $file))" "$file"; done | sort