31a4d02553915af0645eae57d40775920ed45a0b
[xfstests-dev.git] / common.attr
1 ##/bin/sh
2
3 #
4 # Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
5
6 # This program is free software; you can redistribute it and/or modify it
7 # under the terms of version 2 of the GNU General Public License as
8 # published by the Free Software Foundation.
9
10 # This program is distributed in the hope that it would be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
14 # Further, this software is distributed without any warranty that it is
15 # free of the rightful claim of any third person regarding infringement
16 # or the like.  Any license provided herein, whether implied or
17 # otherwise, applies only to this software file.  Patent licenses, if
18 # any, provided herein do not apply to combinations of this program with
19 # other software, or any other product whatsoever.
20
21 # You should have received a copy of the GNU General Public License along
22 # with this program; if not, write the Free Software Foundation, Inc., 59
23 # Temple Place - Suite 330, Boston MA 02111-1307, USA.
24
25 # Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
26 # Mountain View, CA  94043, or:
27
28 # http://www.sgi.com 
29
30 # For further information regarding this notice, see: 
31
32 # http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
33 #
34
35 # common extended attribute and ACL support
36
37 # pick three unused user/group ids, store them as $acl[1-3]
38 #
39 _acl_setup_ids()
40 {
41     eval `cat /etc/passwd /etc/group | awk -F: '
42       { ids[$3]=1 }
43       END {
44         j=1
45         for(i=1; i<1000000 && j<=3;i++){
46           if (! (i in ids)) {
47              printf "acl%d=%d;", j, i;           
48              j++
49           }
50         }       
51       }'`
52 }
53
54 # filter for the acl ids selected above
55 #
56 _acl_filter_id()
57 {
58     sed \
59        -e "s/u:$acl1/u:id1/" \
60        -e "s/u:$acl2/u:id2/" \
61        -e "s/u:$acl3/u:id3/" \
62        -e "s/g:$acl1/g:id1/" \
63        -e "s/g:$acl2/g:id2/" \
64        -e "s/g:$acl3/g:id3/" \
65        -e "s/ $acl1 / id1 /" \
66        -e "s/ $acl2 / id2 /" \
67        -e "s/ $acl3 / id3 /"
68 }
69
70 # filtered ls
71 #
72 _acl_ls()
73 {
74     ls -ln $* | awk '{ print $1, $3, $4, $NF }' | _acl_filter_id
75
76
77 # make sure this script returns success
78 /bin/true