File: install.sh

package info (click to toggle)
dish 1.19.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 304 kB
  • sloc: exp: 1,541; sh: 207; makefile: 116
file content (140 lines) | stat: -rwxr-xr-x 2,560 bytes parent folder | download | duplicates (5)
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/bin/sh
#
# Simple installer for dish 
# Author: Dimitar Ivanov
#
set -e
VER=1.1.1

PROG=dish
DIST_FILES='
$BINDIR:dish:0755
$MANDIR:dish.1:0644
'
LINK_FILES='
$BINDIR:dicp:dish
'
BINDIR=/usr/local/bin
MANDIR=/usr/local/man/man1
SRCDIR=src
UIDGID=0:0

### Functions
#
Usage () {
    cat << !

Usage: $0 [ -i | -u ] [ -b <bin-dir> ] [ -m <man-dir> ]

Options:
   -i              - Install program
   -u              - Uninstall program
   -b <bin-dir>    - Directory where to install the executable(s),
                     default is $BINDIR
   -m <man-dir>    - Directory where to install the manual page(s),
                     default is $MANDIR
   -o <user:group> - Specify ownership for the installed files. This argument
                     is ignored if you are not root. Default is $UIDGID
   -q              - Don't ask any questions and run quietly

!
}

iamwho () {
   > /tmp/.$$
   ls -al /tmp/.$$ |tr -s ' ' |cut -f3 -d' '
   rm -f /tmp/.$$
}

### Process options and arguments
#
[ -z "$1" ] && set -- -h

while [ $# -gt 0 ]
do
case $1 in
     -i) ALLED=installed
         CMD='cp -f $2 $1'
         LINK='cd $1 && test ! -h $2 && ln -s $3 $2 || true'
         CHMOD=chmod
         CHOWN=chown
      ;;
     -u) ALLED=uninstalled
         CMD='rm -f $1/$2'
         LINK='cd $1 && rm -f $2'
         CHMOD=:
         CHOWN=:
      ;;
     -q) QUIET=yes
      ;;
     -b) BINDIR=$2
         shift
      ;;
     -m) MANDIR=$2
         shift
      ;;
     -o) UIDGID=$2
         shift
      ;;
      *) Usage
         exit
         ;;
esac
shift
done


### Do install/uninstall
#
[ $ALLED ] || { Usage ; exit ; }

[ $QUIET ] || {
  echo ""
  echo "              --- '$PROG' installer ---"
  echo ""
  echo "Following files will be $ALLED:"
  echo =========
  files=`echo "$DIST_FILES" "$LINK_FILES"`
  echo `eval echo $files` |tr ' ' '\n' |cut -d: -f1-2 |tr : /
  echo ""
  echo "Go ahead [y/N]"
  read y
  if [ y$y != yy ]; then echo "Exiting now .." ; exit ; fi
}

cd $SRCDIR || exit 1

   # If not root, don't try to change ownership
me=`iamwho`
if [ $me != root ]; then CHOWN=: ; fi

   # cp/rm some file
for file in $DIST_FILES
do
    args=`echo $file |tr : ' '`
    set `eval echo $args`
       # copy or remove
    eval $CMD
       # change mode
    $CHMOD $3 $1/$2
       # change owner
    $CHOWN $UIDGID $1/$2
done

   # link/rm some files
for file in $LINK_FILES
do
    args=`echo $file |tr : ' '`
    set `eval echo $args`
    eval $LINK
done

cd ..

[ $QUIET ] || {
  echo ""
  echo "'$PROG' $ALLED successfully"
  echo ""
}

exit 0