upload tizen1.0 source
[pkgs/n/native-installer.git] / backend / scripts / install_spk.sh.in
1 #!/bin/sh
2
3 E_WRONG_ARGS=5
4 E_FILE_NOT_FOUND=6
5 E_NO_MANIFEST=7
6 E_DPKG_ERROR=8
7
8 PKG_LOG_DIR=/var/pkgmgr/native
9
10
11 debug () {
12         echo ">>$DEBUG" >> /tmp/nativescriptlog
13 }
14
15 NOARG=$#
16 #echo "No of Arguments = $NOARG"
17
18 if [ $NOARG -lt 1 ] || [ $NOARG -gt 4 ] ; then
19         DEBUG="Usage: install.sh PKG_FILE";debug
20         exit $E_WRONG_ARGS
21 elif [ $NOARG -eq 2 ] ; then
22         OPTIONS_FLAGS=$2
23 elif [ $NOARG -eq 3 ] ; then
24         STATUS_OPTIONS=$2
25         STATUS_FD=$3
26 elif [ $NOARG -eq 4 ] ; then
27         OPTIONS_FLAGS=$2
28         STATUS_OPTIONS=$3
29         STATUS_FD=$4
30 fi
31 PKGFILE_PATH="$1"
32
33 if [ ! -f "$1" ];then
34         DEBUG="File not found";debug
35         exit $E_FILE_NOT_FOUND
36 fi
37
38 if [ ! -d $PKG_LOG_DIR ];then
39         DEBUG="$PKG_LOG_DIR not exist -> mkdir(ok)";debug
40         mkdir -p $PKG_LOG_DIR
41 fi
42
43 PKGFILENAME="${PKGFILE_PATH##*/}"
44 ###############
45 #PKGNAME=${PKGFILENAME%-[0-9]*.*} <- NG(PKGName can be different with PkgFileName)
46 /usr/bin/extract_manifest.sh "$PKGFILE_PATH"
47 PKGNAME=`grep -i Package: /var/pkgmgr/"$PKGFILENAME"/metainfo/control | awk -F: '{print $2}' | sed 's/^[ ]*//'`
48 rm -rf /var/pkgmgr/"$PKGFILENAME"
49 ###############
50
51 touch $PKG_LOG_DIR/$PKGNAME.install
52 echo "$PKGFILE_PATH" > $PKG_LOG_DIR/$PKGNAME.install
53
54 #echo "pkg name = $PKGFILENAME"
55 #echo "Options = $OPTIONS_FLAGS"
56 #echo "Status Fd options = $STATUS_OPTIONS"
57 #echo "Status Fd = $STATUS_FD"
58 dpkg $OPTIONS_FLAGS $STATUS_OPTIONS $STATUS_FD --install "$PKGFILE_PATH"
59 dpkgretval=$?
60 if [ $dpkgretval -ne 0 ]; then                                                                               
61         DEBUG="dpkg returned error ";debug                                                                  
62         # just remove any partially installed package 
63         dpkg --purge "$PKGNAME"
64         exit $E_DPKG_ERROR                                                                                   
65 else                                                                                                         
66         DEBUG="dpkg success ";debug                                                                          
67 fi
68
69 #DAC
70 USERNAME=`echo $PKGNAME | tr '.' '_'`
71 GROUPNAME=$USERNAME
72 #INHOUSEGROUPNAME=`id -nG inhouse|tr ' ' ','`
73 INHOUSEGROUPNAME=`id -nG inhouse`
74 PKGFOLDERNAME=/opt/apps/$PKGNAME
75
76 if [ -d $PKGFOLDERNAME ];then
77         DEBUG="home Folder exist";debug
78 else
79         DEBUG="home Folder not exist; creating";debug
80         mkdir -p $PKGFOLDERNAME
81 fi
82
83 mkdir -p $PKGFOLDERNAME/data
84 chown -R 5000:5000 /opt/apps/$PKGNAME/data
85
86 #deluser $USERNAME
87 #addgroup $GROUPNAME
88
89 #i=10000
90 #while [ $i -le 64999 ]
91 #do
92 #       adduser -G $GROUPNAME -h $PKGFOLDERNAME/home -u $i -D $USERNAME 
93 #       if [ $? -eq 0 ]
94 #       then
95 #               break
96 #       else
97 #               i=`expr $i + 1`
98 #       fi
99 #done
100
101
102 #for grp in $INHOUSEGROUPNAME
103 #do
104 #       addgroup $USERNAME $grp
105 #done
106
107