--- /dev/null
- echo "There is no TIZEN_SDK_PATH ENV" >> /tmp/emulator.log
- # exit 2;
+#!/bin/sh -e
+
+TIZEN_SDK_INSTALL_PATH="`echo $INSTALLED_PATH`"
+OLD_SHMMAXSIZE=`sysctl -n kern.sysv.shmmax`
+SYSCTL_FILE=sysctl.conf
+TMP_DIR=~/.installmanager
+COCOASUDO_PATH=$TIZEN_SDK_INSTALL_PATH/tools/emulator/bin
+TIZEN_BIN_PATH=$TIZEN_SDK_INSTALL_PATH/platforms/tizen-3.0/common/emulator/bin
+TIZEN_PLATFORM_ETC_PATH=$TIZEN_SDK_INSTALL_PATH/platforms/tizen-3.0/common/emulator/etc
+TIZEN_TOOL_ETC_PATH=$TIZEN_SDK_INSTALL_PATH/tools/emulator/etc
+TMP_FILE=$TMP_DIR/emulator-install.sh
+NEW_SHMMAXSIZE=83886080
++
+if [ -z "$TIZEN_SDK_INSTALL_PATH" ]
+then
- if [ -e "$TMP_FILE" ]
- then
- echo "delete $TMP_FILE"
- rm -f "$TMP_FILE"
- fi
++ echo "There is no TIZEN_SDK_PATH ENV" >> /tmp/emulator.log
++ # exit 2;
+fi
+
+function remove_tmp_file {
- if [ -e "$TMP_DIR/$SYSCTL_FILE" ]
- then
- echo "delete $TMP_DIR/$SYSCTL_FILE"
- rm -f "$TMP_DIR/$SYSCTL_FILE"
- fi
++ if [ -e "$TMP_FILE" ]
++ then
++ echo "delete $TMP_FILE"
++ rm -f "$TMP_FILE"
++ fi
+}
+
+function remove_sysctl_file {
- echo 'make new sysctl.conf file to change'
++ if [ -e "$TMP_DIR/$SYSCTL_FILE" ]
++ then
++ echo "delete $TMP_DIR/$SYSCTL_FILE"
++ rm -f "$TMP_DIR/$SYSCTL_FILE"
++ fi
+}
+
+function makesysctl {
- remove_sysctl_file;
++ echo 'make new sysctl.conf file to change'
+
- echo "kern.sysv.shmmax=83886080" >> "$TMP_DIR/$SYSCTL_FILE"
- echo "kern.sysv.shmmin=1" >> "$TMP_DIR/$SYSCTL_FILE"
- echo "kern.sysv.shmmni=128" >> "$TMP_DIR/$SYSCTL_FILE"
- echo "kern.sysv.shmseg=32" >> "$TMP_DIR/$SYSCTL_FILE"
- echo "kern.sysv.shmall=20480" >> "$TMP_DIR/$SYSCTL_FILE"
++ remove_sysctl_file;
+
- echo "cp -pR \"${TIZEN_PLATFORM_ETC_PATH}/emulator-ifup.sh\" /etc/" >> "$TMP_FILE"
- echo "mkdir -p /Library/Extensions" >> $TMP_FILE
- echo "rm -rf \"${TIZEN_TOOL_ETC_PATH}/tap.kext\"" >> "$TMP_FILE"
- echo "ditto -x -k \"${TIZEN_TOOL_ETC_PATH}/tap.zip\" \"${TIZEN_TOOL_ETC_PATH}\"" >> "$TMP_FILE"
- echo "rm -f \"${TIZEN_TOOL_ETC_PATH}/tap.zip\"" >> "$TMP_FILE"
- echo "cp -pR \"${TIZEN_TOOL_ETC_PATH}/tap.kext\" /Library/Extensions" >> "$TMP_FILE"
- echo "chown -R root:wheel /Library/Extensions/tap.kext" >> "$TMP_FILE"
- echo "mkdir -p /Library/LaunchDaemons" >> "$TMP_FILE"
- echo "cp /Library/Extensions/tap.kext/Contents/net.sf.tuntaposx.tap.plist /Library/LaunchDaemons" >> "$TMP_FILE"
- echo "kextutil -nt /Library/Extensions/tap.kext" >> "$TMP_FILE"
- echo "/sbin/kextload /Library/Extensions/tap.kext" >> "$TMP_FILE"
++ echo "kern.sysv.shmmax=83886080" >> "$TMP_DIR/$SYSCTL_FILE"
++ echo "kern.sysv.shmmin=1" >> "$TMP_DIR/$SYSCTL_FILE"
++ echo "kern.sysv.shmmni=128" >> "$TMP_DIR/$SYSCTL_FILE"
++ echo "kern.sysv.shmseg=32" >> "$TMP_DIR/$SYSCTL_FILE"
++ echo "kern.sysv.shmall=20480" >> "$TMP_DIR/$SYSCTL_FILE"
+}
+
+function generate_tap_kext_cmd {
- if [ $OLD_SHMMAXSIZE -lt $NEW_SHMMAXSIZE ]
- then
- if [ -e "/etc/$SYSCTL_FILE" ]
- then
- makesysctl;
- echo "mv -f /etc/sysctl.conf /etc/sysctl.conf.old" >> "$TMP_FILE"
- echo "cp -f \"$TMP_DIR/$SYSCTL_FILE\" /etc/." >> "$TMP_FILE"
- echo "sysctl -w kern.sysv.shmmax=$NEW_SHMMAXSIZE" >> "$TMP_FILE"
- echo 'echo "Changing /etc/sysctl.conf file. (The original file will be removed to sysctl.conf.old)"' >> "$TMP_FILE"
- else
- makesysctl;
- echo "cp -f \"$TMP_DIR/$SYSCTL_FILE\" /etc/." >> "$TMP_FILE"
- echo "sysctl -w kern.sysv.shmmax=$NEW_SHMMAXSIZE" >> "$TMP_FILE"
- echo 'echo "Make a new /etc/sysctl.conf file."' >> "$TMP_FILE"
- fi
- fi
++ echo "cp -pR \"${TIZEN_PLATFORM_ETC_PATH}/emulator-ifup.sh\" /etc/" >> "$TMP_FILE"
++ echo "mkdir -p /Library/Extensions" >> $TMP_FILE
++ echo "rm -rf \"${TIZEN_TOOL_ETC_PATH}/tap.kext\"" >> "$TMP_FILE"
++ echo "ditto -x -k \"${TIZEN_TOOL_ETC_PATH}/tap.zip\" \"${TIZEN_TOOL_ETC_PATH}\"" >> "$TMP_FILE"
++ echo "rm -f \"${TIZEN_TOOL_ETC_PATH}/tap.zip\"" >> "$TMP_FILE"
++ echo "cp -pR \"${TIZEN_TOOL_ETC_PATH}/tap.kext\" /Library/Extensions" >> "$TMP_FILE"
++ echo "chown -R root:wheel /Library/Extensions/tap.kext" >> "$TMP_FILE"
++ echo "mkdir -p /Library/LaunchDaemons" >> "$TMP_FILE"
++ echo "cp /Library/Extensions/tap.kext/Contents/net.sf.tuntaposx.tap.plist /Library/LaunchDaemons" >> "$TMP_FILE"
++ echo "kextutil -nt /Library/Extensions/tap.kext" >> "$TMP_FILE"
++ echo "/sbin/kextload /Library/Extensions/tap.kext" >> "$TMP_FILE"
+}
+
+function generate_sysctl_cmd {
- cat << 'EOF' >> $TMP_FILE
++ if [ $OLD_SHMMAXSIZE -lt $NEW_SHMMAXSIZE ]
++ then
++ if [ -e "/etc/$SYSCTL_FILE" ]
++ then
++ makesysctl;
++ echo "mv -f /etc/sysctl.conf /etc/sysctl.conf.old" >> "$TMP_FILE"
++ echo "cp -f \"$TMP_DIR/$SYSCTL_FILE\" /etc/." >> "$TMP_FILE"
++ echo "sysctl -w kern.sysv.shmmax=$NEW_SHMMAXSIZE" >> "$TMP_FILE"
++ echo 'echo "Changing /etc/sysctl.conf file. (The original file will be removed to sysctl.conf.old)"' >> "$TMP_FILE"
++ else
++ makesysctl;
++ echo "cp -f \"$TMP_DIR/$SYSCTL_FILE\" /etc/." >> "$TMP_FILE"
++ echo "sysctl -w kern.sysv.shmmax=$NEW_SHMMAXSIZE" >> "$TMP_FILE"
++ echo 'echo "Make a new /etc/sysctl.conf file."' >> "$TMP_FILE"
++ fi
++ fi
+}
+
+function generate_sudoer_cmd {
- echo "user is not set. aborting..."
- exit 1
++ cat << 'EOF' >> $TMP_FILE
+FILE=/etc/sudoers
+BACKFILE=/etc/sudoers.bak
+TMPFILE=/etc/sudoers.tmp
+MESSAGE="# Tizen SDK generated the following script. Do not modify."
+LINE1="User_Alias QEMUERS="
+LINE2="Cmnd_Alias QEMU=/etc/emulator-ifup.sh, /etc/emulator-ifdown.sh"
+LINE3="QEMUERS ALL=(ALL) NOPASSWD: QEMU"
+count=0
+
+if [[ "$USER" == "" ]]
+then
- echo $line
- count=$((count+1))
- if [[ $line == $LINE1* ]]
- then
- echo "find original script"
- NAMES=`echo $line | cut -d = -f2`
- if [[ "$NAMES"x == ""x ]]
- then
- cp $FILE $BACKFILE
- # in case of blank user
- eval sed -e "$count"c\"$line $USER\" $FILE > $TMPFILE
- exit 0
- fi
- for i in $(echo $NAMES | tr "," "\n")
- do
- if [[ "$i" == "$USER" ]]
- then
- echo "already added the same user"
- exit 0
- fi
- done
- cp $FILE $BACKFILE
- # new user is added with comma behind the original users.
- eval sed -e "$count"c\"$line, $USER\" $FILE > $TMPFILE
- mv $TMPFILE $FILE
- exit 0
- fi
++ echo "user is not set. aborting..."
++ exit 1
+fi
+
+while read line
+do
-
++ echo $line
++ count=$((count+1))
++ if [[ $line == $LINE1* ]]
++ then
++ echo "find original script"
++ NAMES=`echo $line | cut -d = -f2`
++ if [[ "$NAMES"x == ""x ]]
++ then
++ cp $FILE $BACKFILE
++ # in case of blank user
++ eval sed -e "$count"c\"$line $USER\" $FILE > $TMPFILE
++ exit 0
++ fi
++ for i in $(echo $NAMES | tr "," "\n")
++ do
++ if [[ "$i" == "$USER" ]]
++ then
++ echo "already added the same user"
++ exit 0
++ fi
++ done
++ cp $FILE $BACKFILE
++ # new user is added with comma behind the original users.
++ eval sed -e "$count"c\"$line, $USER\" $FILE > $TMPFILE
++ mv $TMPFILE $FILE
++ exit 0
++ fi
+done < $FILE
+
+cp $FILE $BACKFILE
+echo "do not find qemu sudoer. add it"
+echo "$MESSAGE" >> $FILE
+echo "$LINE1$USER" >> $FILE
+echo "$LINE2" >> $FILE
+echo "$LINE3" >> $FILE
+exit 0
+EOF
- TAP_ZIP_FILE="$TIZEN_TOOL_ETC_PATH/tap.zip"
- TAP_KEXT="$TIZEN_TOOL_ETC_PATH/tap.kext"
- if [ ! -d "$TMP_DIR" ]
- then
- echo "make temp directory for emulator install : ( $TMP_DIR )"
- mkdir "$TMP_DIR"
- fi
- USER=`id -un`
- echo "create $TMP_FILE"
- echo "#!/bin/sh" > "$TMP_FILE"
- echo "TIZEN_SDK_INSTALL_PATH=$TIZEN_SDK_INSTALL_PATH" >> "$TMP_FILE"
- echo "USER=$USER" >> "$TMP_FILE"
+}
+
+function prepare {
- generate_sysctl_cmd;
- generate_tap_kext_cmd;
- generate_sudoer_cmd;
++ TAP_ZIP_FILE="$TIZEN_TOOL_ETC_PATH/tap.zip"
++ TAP_KEXT="$TIZEN_TOOL_ETC_PATH/tap.kext"
++ if [ ! -d "$TMP_DIR" ]
++ then
++ echo "make temp directory for emulator install : ( $TMP_DIR )"
++ mkdir "$TMP_DIR"
++ fi
++ USER=`id -un`
++ echo "create $TMP_FILE"
++ echo "#!/bin/sh" > "$TMP_FILE"
++ echo "TIZEN_SDK_INSTALL_PATH=$TIZEN_SDK_INSTALL_PATH" >> "$TMP_FILE"
++ echo "USER=$USER" >> "$TMP_FILE"
+}
+
+function generate {
- /bin/chmod +x "$TMP_FILE"
- "$COCOASUDO_PATH/cocoasudo" --prompt="Please enter your password to install Tizen Emulator." sh -x "$TMP_FILE"
++ generate_sysctl_cmd;
++ generate_tap_kext_cmd;
++ generate_sudoer_cmd;
+}
+
+function execute {
- remove_tmp_file;
- remove_sysctl_file;
++ /bin/chmod +x "$TMP_FILE"
++ "$COCOASUDO_PATH/cocoasudo" --prompt="Please enter your password to install Tizen Emulator." sh -x "$TMP_FILE"
+}
+
+function cleanup {
- echo 'need reboot'
- exit 99
++ remove_tmp_file;
++ remove_sysctl_file;
+}
+
+prepare;
+generate;
+execute;
+cleanup;
+
+CURRENT_SHMMAXSIZE=`sysctl -n kern.sysv.shmmax`
+
+if [ ! $OLD_SHMMAXSIZE -eq $CURRENT_SHMMAXSIZE ]
+then
++ echo 'need reboot'
++ exit 99
+fi
+