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.
45 lines
1.2 KiB
45 lines
1.2 KiB
17 years ago
|
#!/bin/sh
|
||
|
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
|
||
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
|
||
|
#
|
||
|
# Filename: package/.../udev/read_nodes.sh
|
||
|
# Copyright (C) 2008 The OpenSDE Project
|
||
|
#
|
||
|
# More information can be found in the files COPYING and README.
|
||
|
#
|
||
|
# 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. A copy of the
|
||
|
# GNU General Public License can be found in the file COPYING.
|
||
|
# --- SDE-COPYRIGHT-NOTE-END ---
|
||
|
|
||
|
nodes_read() {
|
||
|
local prefix="$1" dir="$2" node= nodename= mode= type= data=
|
||
|
for nodename in $( cd "$dir"; ls -1d * 2> /dev/null ); do
|
||
|
node="$dir/$nodename"
|
||
|
mode=$( stat -c '%a %U %G' "$node" )
|
||
|
label="$prefix$nodename"
|
||
|
type='?'
|
||
|
data=
|
||
|
|
||
|
if [ -L "$node" ]; then
|
||
|
type='l'
|
||
|
data=$( readlink "$node" )
|
||
|
elif [ -d "$node" ]; then
|
||
|
type='d'
|
||
|
elif [ -c "$node" ]; then
|
||
|
type='c'
|
||
|
data=$( stat -c '%t %T' "$node" )
|
||
|
elif [ -S "$node" ]; then
|
||
|
type='s'
|
||
|
fi
|
||
|
|
||
|
echo "$type $label $mode${data:+ $data}"
|
||
|
[ "$type" != d ] || nodes_read "$label/" "$node"
|
||
|
done
|
||
|
}
|
||
|
|
||
|
for dir; do
|
||
|
nodes_read "" "${dir%/}"
|
||
|
done
|