summaryrefslogtreecommitdiff
path: root/package/scripts
blob: 1e92cd7d76413d038700975d06ddb43c8567671a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/sh

shout() { echo "$0: $@" >&2; }
barf() { shout "fatal: $@"; exit 111; }
safe() { "$@" || barf "cannot $@"; }

here=`env - PATH=$PATH pwd`
destination="`head -1 conf-home`/bin"
group="`head -1 conf-groups`"

safe umask 022
[ -d package ] || barf "no package directory"
[ -d scripts  ] || barf "no src directory"

for i in `sed -e '/^it-/!d' -e 's/^it-//' < scripts/it=d`
do
  all="$all $i"
done

other="`grep -v '^it-' scripts/it=d`"
usage() { shout "usage: package/scripts [ [-]$all ]"; exit 100; }

targets=""
if [ $# -eq 0 ]
then
  targets="$all"
else
  if [ "$1" = "-" ]
  then
    shift
    suppress=":"
    for i in ${1+"$@"}
    do
      case "$all " in
        *\ $i\ *)
          ;;
        *)
          usage
          ;;
      esac
      suppress="$suppress$i:"
    done
    for i in $all
    do
      case "$suppress" in
        *:$i:*)
          ;;
        *)
          targets="$targets $i"
          ;;
      esac
    done
  else
    for i in ${1+"$@"}
    do
      case "$all " in
        *\ $i\ *)
          ;;
        *)
          usage
          ;;
      esac
      targets="$targets $i"
    done
  fi
fi

[ "X$all" != "X" ] && [ "X$targets" = "X" ] && usage

commands=""
for i in $targets
do
  commands="$commands `cat package/commands-$i`"
done

safe cd scripts
safe make $other `echo "$targets" | sed -e 's/ / it-/g'`

for i in $commands
do 
  i=${i%:}
  safe rm -f command/$i'{new}'
  safe cp -p scripts/$i command/$i'{new}'
  safe mv -f command/$i'{new}' command/$i
done

safe cd $here

shout "s/qmail additional script files installed in $destination with RC=$rc."
shout "Note: Some of the scripts work only in a specific envrionment; ldap-pam requires PERL module 'Net::LDAP'."

exit 0