Last change
on this file since 1080 was 1046, checked in by alloc, 8 years ago |
Daodan: Added Windows MinGW and build batch file
|
File size:
1.8 KB
|
Rev | Line | |
---|
[1046] | 1 | # group.awk --- functions for dealing with the group file
|
---|
| 2 | #
|
---|
| 3 | # Arnold Robbins, arnold@skeeve.com, Public Domain
|
---|
| 4 | # May 1993
|
---|
| 5 | # Revised October 2000
|
---|
| 6 |
|
---|
| 7 | BEGIN \
|
---|
| 8 | {
|
---|
| 9 | # Change to suit your system
|
---|
| 10 | _gr_awklib = "/usr/sbin/awk/"
|
---|
| 11 | }
|
---|
| 12 |
|
---|
| 13 | function _gr_init( oldfs, oldrs, olddol0, grcat,
|
---|
| 14 | using_fw, n, a, i)
|
---|
| 15 | {
|
---|
| 16 | if (_gr_inited)
|
---|
| 17 | return
|
---|
| 18 |
|
---|
| 19 | oldfs = FS
|
---|
| 20 | oldrs = RS
|
---|
| 21 | olddol0 = $0
|
---|
| 22 | using_fw = (PROCINFO["FS"] == "FIELDWIDTHS")
|
---|
| 23 | FS = ":"
|
---|
| 24 | RS = "\n"
|
---|
| 25 |
|
---|
| 26 | grcat = _gr_awklib "grcat"
|
---|
| 27 | while ((grcat | getline) > 0) {
|
---|
| 28 | if ($1 in _gr_byname)
|
---|
| 29 | _gr_byname[$1] = _gr_byname[$1] "," $4
|
---|
| 30 | else
|
---|
| 31 | _gr_byname[$1] = $0
|
---|
| 32 | if ($3 in _gr_bygid)
|
---|
| 33 | _gr_bygid[$3] = _gr_bygid[$3] "," $4
|
---|
| 34 | else
|
---|
| 35 | _gr_bygid[$3] = $0
|
---|
| 36 |
|
---|
| 37 | n = split($4, a, "[ \t]*,[ \t]*")
|
---|
| 38 | for (i = 1; i <= n; i++)
|
---|
| 39 | if (a[i] in _gr_groupsbyuser)
|
---|
| 40 | _gr_groupsbyuser[a[i]] = \
|
---|
| 41 | _gr_groupsbyuser[a[i]] " " $1
|
---|
| 42 | else
|
---|
| 43 | _gr_groupsbyuser[a[i]] = $1
|
---|
| 44 |
|
---|
| 45 | _gr_bycount[++_gr_count] = $0
|
---|
| 46 | }
|
---|
| 47 | close(grcat)
|
---|
| 48 | _gr_count = 0
|
---|
| 49 | _gr_inited++
|
---|
| 50 | FS = oldfs
|
---|
| 51 | if (using_fw)
|
---|
| 52 | FIELDWIDTHS = FIELDWIDTHS
|
---|
| 53 | RS = oldrs
|
---|
| 54 | $0 = olddol0
|
---|
| 55 | }
|
---|
| 56 | function getgrnam(group)
|
---|
| 57 | {
|
---|
| 58 | _gr_init()
|
---|
| 59 | if (group in _gr_byname)
|
---|
| 60 | return _gr_byname[group]
|
---|
| 61 | return ""
|
---|
| 62 | }
|
---|
| 63 | function getgrgid(gid)
|
---|
| 64 | {
|
---|
| 65 | _gr_init()
|
---|
| 66 | if (gid in _gr_bygid)
|
---|
| 67 | return _gr_bygid[gid]
|
---|
| 68 | return ""
|
---|
| 69 | }
|
---|
| 70 | function getgruser(user)
|
---|
| 71 | {
|
---|
| 72 | _gr_init()
|
---|
| 73 | if (user in _gr_groupsbyuser)
|
---|
| 74 | return _gr_groupsbyuser[user]
|
---|
| 75 | return ""
|
---|
| 76 | }
|
---|
| 77 | function getgrent()
|
---|
| 78 | {
|
---|
| 79 | _gr_init()
|
---|
| 80 | if (++_gr_count in _gr_bycount)
|
---|
| 81 | return _gr_bycount[_gr_count]
|
---|
| 82 | return ""
|
---|
| 83 | }
|
---|
| 84 | function endgrent()
|
---|
| 85 | {
|
---|
| 86 | _gr_count = 0
|
---|
| 87 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.