aboutsummaryrefslogtreecommitdiffstats
path: root/japanese/ebnetd/pkg-install
blob: 747d2672696cb011d10d562e506db1fbabb15496 (plain) (blame)
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
#!/bin/sh -
# an installation script for ebnetd

BATCH=${BATCH:=no}
basename=`basename $0`

ask() {
    local question default answer

    question=$1
    default=$2

    if [ -z "${PACKAGE_BUILDING}" -a x${BATCH} = xno ]; then
    read -p "${question} (y/n) [${default}]? " answer
        [ "${answer}" ] && default=${answer}
    fi
    echo ${default}
}

yesno() {
    local question default

    question=$1
    default=$2

    while :; do
    case `ask "${question}" ${default}` in
        [Yy]*) return 0;;
        [Nn]*) return 1;;
    esac
    echo "Please answer yes or no."
    done
}

check() {
    local file entry

    file=$1
    entry=$2

    sed 's/#.*//' ${file} | grep -qw ${entry}
}

checkall() {
    local file list item

    file=$1
    shift
    list=$*

    for item in $list; do
    if check ${file} ${item}; then
        :
    else
        return 1
    fi
    done
    return 0
}

add() {
    local oldfile newfile entry port comment

    file=$1
    entry=$2
    port=$3
    comment=$4

    if check ${file} ${entry}; then
    :
    elif sed 's/#.*//' ${file} | grep -qw ${port} ; then
    oldumask=`umask`
    umask 0077
    tmpfile=`mktemp -q /tmp/${basename}.XXXXXX`
    if [ $? -ne 0 ]; then
        echo "Can't create temp file" 1>&2
        exit 1
    fi
    cp $file $tmpfile
    trap '' 1 2 15
    sed 's,^\([^#]*[    ]'${port}'\),\1 '${entry}, ${tmpfile} > ${file}
    trap 1 2 15
    rm $tmpfile
    umask $oldumask
    else
    echo "${entry}      ${port}   #${comment}" >> ${file}
    fi
}

[ "$2" = POST-INSTALL ] || exit 0

#
# Add entries for EBNETD (`ebnet' and `ndtp') to /etc/services.
#
file=/etc/services
back=${file}.bak
entrylist='ebnet ndtp'
entry_ebnet=ebnet
port_ebnet=22010/tcp
comment_ebnet='EBNET Protocol'
entry_ndtp=ndtp
port_ndtp=2010/tcp
comment_ndtp='Network Dictionary Transfer Protocol'

echo "************************************************************************"
if checkall ${file} ${entrylist}; then
    echo "This system has already all entries for EBNETD in ${file}."
else
    echo "This system doesn't have some of entries for EBNETD in ${file}."
    if yesno "  Would you like to add them automatically?" y; then
    cp -f ${file} ${back}
    echo "    The original file is saved as ${back}."
    add ${file} ${entry_ebnet} ${port_ebnet} ${comment_ebnet}
    add ${file} ${entry_ndtp} ${port_ndtp} ${comment_ndtp}
    fi
fi
echo "************************************************************************"

exit 0