OpenSDE Packages Database (without history before r20070)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.2 KiB

  1. #!/bin/sh
  2. # --- SDE-COPYRIGHT-NOTE-BEGIN ---
  3. # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
  4. #
  5. # Filename: package/.../udev/read_nodes.sh
  6. # Copyright (C) 2008 The OpenSDE Project
  7. #
  8. # More information can be found in the files COPYING and README.
  9. #
  10. # This program is free software; you can redistribute it and/or modify
  11. # it under the terms of the GNU General Public License as published by
  12. # the Free Software Foundation; version 2 of the License. A copy of the
  13. # GNU General Public License can be found in the file COPYING.
  14. # --- SDE-COPYRIGHT-NOTE-END ---
  15. nodes_read() {
  16. local prefix="$1" dir="$2" node= nodename= mode= type= data=
  17. for nodename in $( cd "$dir"; ls -1d * 2> /dev/null ); do
  18. node="$dir/$nodename"
  19. mode=$( stat -c '%a %U %G' "$node" )
  20. label="$prefix$nodename"
  21. type='?'
  22. data=
  23. if [ -L "$node" ]; then
  24. type='l'
  25. data=$( readlink "$node" )
  26. elif [ -d "$node" ]; then
  27. type='d'
  28. elif [ -c "$node" ]; then
  29. type='c'
  30. data=$( stat -c '%t %T' "$node" )
  31. elif [ -S "$node" ]; then
  32. type='s'
  33. fi
  34. echo "$type $label $mode${data:+ $data}"
  35. [ "$type" != d ] || nodes_read "$label/" "$node"
  36. done
  37. }
  38. for dir; do
  39. nodes_read "" "${dir%/}"
  40. done