#!/bin/sh

list_source_files() {
  local d r

  d="$(cd "$1" && echo "$PWD")"
  r="$d"
  while [ "$r" != "/" ] && [ ! -e "$r/.svn" ] && [ ! -e "$r/.git" ] &&
	[ ! -e "$r/.hg" ]; do
    r="$(dirname "$r")"
  done

  if [ -e "$r/.svn" ]; then
    (
      cd "$d" || exit $?
      svn status -v | \
      grep -vE '^[D?]|^Performing|^$' | \
      cut -c3- | \
      while read -r a b c f; do
        if [ -f "$f" ] || [ -h "$f" ]; then
	  echo "$a $b $c" >/dev/null
	  echo "$f"
        fi
      done
    )
  elif [ -e "$r/.git" ]; then
    subdir="${d#${r}}"
    if [ "$r" != "" ]; then
      ( cd "$d" && git ls-tree --name-only -r HEAD ) | sed "s|^$subdir/||"
    else
      echo "Ignored directory $1" >&2
    fi
  elif [ -e "$r/.hg" ]; then
    subdir="${d#${r}}"
    if [ -n "${subdir}" ]; then
      subdir="${subdir#/}/"
      hg manifest | sed -n "s|^$subdir||p"
    else
      hg manifest
    fi
  else
    (
      cd "$d" &&
      find . -type f -o -type l | \
      sed -e 's|^\./||' \
	  -e '\|\.k\{0,1\}o\(\.\(cm\)\{0,1\}d\)\{0,1\}$|d' \
	  -e '\|\.mod\(\.c\)\{0,1\}$|d' \
	  -e '\|/conftest/.*/result-.*\.txt$|d' \
	  -e '\|/modules\.order$|d' \
	  -e '\,/Module\.\(symver\|marker\)s$,d' \
	  -e '\,/\.tmp_versions\(/\|$\),d'
    )
  fi
}

if [ $# = 0 ]; then
  list_source_files "$PWD"
else
  for d in "$@"; do list_source_files "$d"; done
fi
