#!/bin/sh # I2P Installer - Installs and pre-configures I2P. # # postinstall # 2004 The I2P Project # http://www.i2p2.de/ # This code is public domain. # # author: hypercubus # # Installs the appropriate set of Java Service Wrapper support files for the # user's OS then launches the I2P router as a background service. if [ ! "X$1" = "X" ]; then cd $1 fi chmod 755 ./i2prouter # chmod 755 ./install_i2p_service_unix chmod 755 ./osid chmod 755 ./runplain.sh # chmod 755 ./uninstall_i2p_service_unix ERROR_MSG="Cannot determine operating system type. From the subdirectory in lib/wrapper matching your operating system, please move i2psvc to your base I2P directory, and move the remaining two files to the lib directory." LOGFILE=./postinstall.log HOST_OS=`./osid` if [ "X$HOST_OS" = "X" -o "X$HOST_OS" = "Xunknown" ]; then echo "$ERROR_MSG" echo "Host OS is $HOST_OS" >> $LOGFILE echo "Host architecture is $OS_ARCH" >> $LOGFILE echo "$ERROR_MSG" >> $LOGFILE exit 1 fi OS_ARCH=`uname -m` X86_64=`echo "${OS_ARCH}" | grep x86_64` case $HOST_OS in debian | fedora | gentoo | linux | mandrake | redhat | suse ) if [ `echo $OS_ARCH |grep armv7` ]; then wrapperpath="./lib/wrapper/linux-armv7" cp ${wrapperpath}/libwrapper.so ./lib/ elif [ `echo $OS_ARCH |grep arm` ]; then wrapperpath="./lib/wrapper/linux-armv5" cp ${wrapperpath}/libwrapper.so ./lib/ elif [ `echo $OS_ARCH |grep ppc` ]; then wrapperpath="./lib/wrapper/linux-ppc" cp ${wrapperpath}/libwrapper.so ./lib/ elif [ "X$X86_64" = "X" ]; then wrapperpath="./lib/wrapper/linux" cp ${wrapperpath}/libwrapper.so ./lib/ else wrapperpath="./lib/wrapper/linux64" cp ${wrapperpath}/libwrapper.so ./lib # the 32bit libwrapper.so will be needed if a 32 bit jvm is used cp ./lib/wrapper/linux/libwrapper.so ./lib/libwrapper-linux-x86-32.so fi ;; freebsd ) if [ ! `echo $OS_ARCH | grep amd64` ]; then wrapperpath="./lib/wrapper/freebsd" cp ${wrapperpath}/libwrapper.so ./lib/ else wrapperpath="./lib/wrapper/freebsd64" cp ${wrapperpath}/libwrapper.so ./lib/ # the 32bit libwrapper.so will be needed if a 32 bit jvm is used cp ./lib/freebsd/libwrapper.so ./lib/libwrapper-freebsd-x86-32.so fi ;; osx ) wrapperpath="./lib/wrapper/macosx" cp ${wrapperpath}/libwrapper.jnilib ./lib/ chmod 755 ./Start\ I2P\ Router.app/Contents/MacOS/i2prouter ;; solaris ) wrapperpath="./lib/wrapper/solaris" cp ${wrapperpath}/libwrapper.so ./lib/ ;; netbsd|openbsd ) # FIXME # This isn't displayed when installing, but if we fall back to the "*)" # choice, no cleanup happens and users are advised to copy the wrapper # in place...but there is no wrapper. Figuring how how to display this, # such as when doing a headless installation would be good. echo "The java wrapper is not supported on this platform." echo "Please use `pwd`/runplain.sh to start I2P." # But at least the cleanup below will happen. ;; * ) echo "${ERROR_MSG}" echo "Host OS is $HOST_OS" >> $LOGFILE echo "Host architecture is $OS_ARCH" >> $LOGFILE echo "$ERROR_MSG" >> $LOGFILE exit 1 ;; esac if [ ! "X$wrapperpath" = "x" ]; then cp $wrapperpath/i2psvc . chmod 755 ./i2psvc fi chmod 755 ./eepget rm -rf ./icons rm -rf ./lib/wrapper rm -f ./lib/*.dll rm -f ./*.bat rm -f ./*.cmd rm -f ./*.exe rm -rf ./installer if [ ! `echo $HOST_OS |grep osx` ]; then rm -rf ./Start\ I2P\ Router.app #rm -f I2P\ Router\ Console.webloc fi # no, let's not start the router from the install script any more # ./i2prouter start rm -f ./osid rm -f ./postinstall.sh exit 0