forked from ehb54/ultrascan3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathus3-update.sh
executable file
·132 lines (122 loc) · 3.33 KB
/
us3-update.sh
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
#!/bin/sh
# us3-update.sh - interactive script to install or update UltraScan3
# Get the directory from which this script was launched
SRCDIR=`dirname $0`
if [ "${SRCDIR}" = "." ]; then
SRCDIR=`pwd`
else
TEMP=${SRCDIR}
SRCDIR=`echo ${SRCDIR}|sed -e 's@^\/@@'`
if [ "${SRCDIR}" != "${TEMP}" ]; then
SRCDIR=${TEMP}
else
SRCDIR=`pwd`/${SRCDIR}
fi
fi
echo " SRCDIR=${SRCDIR}"
CONFILE=$HOME/.config/UltraScan3/UltraScan.conf
if [ -f ${CONFILE} ]; then
# Existing config file implies UPDATE
UBFILES="ArchiveDir|tmpDir"
UDFILES="dataDir|resultDir|reportDir"
echo "This appears to be an UPDATE"
# Get bin,data base directories from config
UBINDIR=`egrep "${UBFILES}" ${CONFILE}|sed -n 1p|cut -d "=" -f2`
UDATDIR=`egrep "${UDFILES}" ${CONFILE}|sed -n 1p|cut -d "=" -f2`
## echo " (1)UBINDIR=${UBINDIR}"
## echo " (1)UDATDIR=${UDATDIR}"
if [ -z "${UBINDIR}" ]; then
UBINDIR=${HOME}/ultrascan3
else
UBINDIR=`dirname ${UBINDIR}`
fi
if [ -z "${UDATDIR}" ]; then
UDATDIR=${HOME}/ultrascan
else
UDATDIR=`dirname ${UDATDIR}`
fi
## echo " (2)UBINDIR=${UBINDIR}"
## echo " (2)UDATDIR=${UDATDIR}"
else
# Non-existing config file implies new INSTALL
echo "This appears to be a new INSTALL";
UBINDIR=${HOME}/ultrascan3
UDATDIR=${HOME}/ultrascan
## echo " (3)UBINDIR=${UBINDIR}"
## echo " (3)UDATDIR=${UDATDIR}"
fi
echo "Inferred base install directories are:"
echo " bin,... : ${UBINDIR}"
echo " data,...: ${UDATDIR}"
echo "Are these the correct destination directories? (y|n, def=y)"
read ANS
if [ "X${ANS}" != "X" -a "X${ANS}" != "Xy" ]; then
echo "Enter base 'bin,...' directory (def=${UBINDIR}) :"
read ANS
if [ "X${ANS}" != "X" ]; then
UBINDIR=${ANS}
fi
echo "Enter base 'data,...' directory (def=${UDATDIR}) : "
read ANS
if [ "X${ANS}" != "X" ]; then
UDATDIR=${ANS}
fi
## echo " (4)UBINDIR=${UBINDIR}"
## echo " (4)UDATDIR=${UDATDIR}"
fi
if [ -d ${UBINDIR} ]; then
# Bin base exists: check its ownership
OWNER=`ls -ld ${UBINDIR}|awk '{print $3}'`
else
# No bin base exists: check ownership of its base
TEMP=`dirname ${UBINDIR}`
if [ ! -d ${TEMP} ]; then
echo "*** Error: ${TEMP} does not exist ***"
exit 1
else
OWNER=`ls -ld ${TEMP}|awk '{print $3}'`
fi
if [ "${OWNER}" = "root" ]; then
sudo mkdir ${UBINDIR}
else
mkdir ${UBINDIR}
fi
fi
if [ ! -d ${UDATDIR} ]; then
# Data base does not exist: make directories
TEMP=`dirname ${UDATDIR}`
if [ ! -d ${TEMP} ]; then
echo "*** Error: ${TEMP} does not exist ***"
exit 1
else
mkdir ${UDATDIR}
fi
fi
# Create BIN directory sub-directories
for D in bin etc lib somo; do
DDIR=${UBINDIR}/${D}
if [ ! -d ${DDIR} ]; then
if [ "${OWNER}" = "root" ]; then
sudo mkdir ${DDIR}
else
mkdir ${DDIR}
fi
fi
done
if [ "${SRCDIR}" = "${UBINDIR}" ]; then
# Report and exit if "to" same as "from"
echo "Install-to is same as install-from: ${UBINDIR}"
echo " No copy of directories and files is needed."
exit 0
fi
# Install by copying directories and files
RSYNC="rsync -av"
if [ "${OWNER}" = "root" ]; then
RSYNC="sudo ${RSYNC}"
fi
for D in bin etc lib somo; do
SDIR=${SRCDIR}/${D}
DDIR=${UBINDIR}
echo "${RSYNC} ${SDIR} ${DDIR}"
${RSYNC} ${SDIR} ${DDIR}
done