#!/bin/sh # -*- coding: utf-8 -*- VERSION=1.03 ARCH=64 SKIP=160 SETUP=${0} SETUPNAME=${SETUP##*/} RED_COLOR="\033[0;31m" YELLOW_COLOR="\033[0;33m" GREEN_COLOR="\033[0;32m" COLOR_END="\033[0m" PATH_TO_DRV=`pwd` CheckRoot() { if [ "$(id -u)" != "0" ]; then printf $RED_COLOR"ERROR: This script must be run as root:\n"$COLOR_END printf $RED_COLOR" sudo $SETUPNAME\n"$COLOR_END exit 1 fi } CheckPlatform() { HOST_OS=`uname -s 2>&1` case "$HOST_OS" in Linux) HOST_OS=linux ;; *) printf $RED_COLOR"ERROR: This script is intended to be run on Linux only.\n"$COLOR_END exit 1 ;; esac } CheckArchitecture() { ACTUAL_ARCH=`uname -m 2>&1` case "$ARCH" in "32") if [ "$ACTUAL_ARCH" != "i386" ] && [ "$ACTUAL_ARCH" != "i686" ]; then printf $RED_COLOR"ERROR: This script must be run on x32.\n"$COLOR_END exit 1 fi ;; "64") if [ "$ACTUAL_ARCH" != "x86_64" ]; then printf $RED_COLOR"ERROR: This script must be run on x64.\n"$COLOR_END exit 1 fi ;; *) printf $RED_COLOR"ERROR: This script can't be run on x$ARCH.\n"$COLOR_END exit 1 esac } DetermineDriversDir() { printf $YELLOW_COLOR"WARNING: USB smart card reader drivers location was not found on your system.\n"$COLOR_END printf $YELLOW_COLOR"Enter path to USB smart card reader drivers directory (usbdropdir):\n"$COLOR_END DRIVERS_DIR="/usr/lib/pcsc/drivers" while true; do printf -n '['$DRIVERS_DIR']: ' read input if [ -n "$input" ]; then DRIVERS_DIR="$input" fi if [ -d "$DRIVERS_DIR" ]; then break fi printf $RED_COLOR"ERROR: '$DRIVERS_DIR' does not exist. Please enter path to existing directory.\n"$COLOR_END done } ###################### # Main setup sequence. ###################### printf "iBank 2 Key $ARCH-bit Driver Installer v$VERSION\n" mkdir "/tmp/$SETUPNAME.$$" CheckRoot; CheckPlatform; CheckArchitecture; IS_PCSCD=`which pcscd pcsc-tools` if [ "$IS_PCSCD" = "" ]; then printf "Installing PC/SC Daemon" apt-get install pcscd pcsc-tools || printf $YELLOW_COLOR"WARNING: Failed to install PC/SC Daemon (pcscd).\n"$COLOR_END fi tail -n +$SKIP $SETUP | (cd "/tmp/$SETUPNAME.$$"; tar zxf -) || exit 1 cd "/tmp/$SETUPNAME.$$" if [ "$1" = "log" ]; then cd "/tmp/$SETUPNAME.$$/lib/scripts" sh log.sh "$PATH_TO_DRV/$SETUPNAME" exit 0; fi DRIVERS_DIR=/usr/lib/pcsc/drivers if [ -d "$DRIVERS_DIR" ]; then printf "Installing drivers to $DRIVERS_DIR\n" cp -R drivers/* "$DRIVERS_DIR" INSTALLED="true" fi DRIVERS_DIR=/usr/local/lib/pcsc/drivers if [ -d "$DRIVERS_DIR" ]; then printf "Installing drivers to $DRIVERS_DIR\n" cp -R drivers/* "$DRIVERS_DIR" INSTALLED="true" fi DRIVERS_DIR=/usr/pcsc/drivers if [ -d "$DRIVERS_DIR" ]; then printf "Installing drivers to $DRIVERS_DIR\n" cp -R drivers/* "$DRIVERS_DIR" INSTALLED="true" fi DRIVERS_DIR=/usr/local/pcsc/drivers if [ -d "$DRIVERS_DIR" ]; then printf "Installing drivers to $DRIVERS_DIR\n" cp -R drivers/* "$DRIVERS_DIR" INSTALLED="true" fi DRIVERS_DIR=/usr/lib64/pcsc/drivers if [ -d "$DRIVERS_DIR" ]; then printf "Installing drivers to $DRIVERS_DIR\n" cp -R drivers/* "$DRIVERS_DIR" INSTALLED="true" fi DRIVERS_DIR=/usr/lib64/readers if [ -d "$DRIVERS_DIR" ]; then printf "Installing drivers to $DRIVERS_DIR\n" cp -R drivers/* "$DRIVERS_DIR" INSTALLED="true" fi if [ "$INSTALLED" != "true" ]; then DetermineDriversDir; printf "Installing drivers to $DRIVERS_DIR\n" cp -R drivers/* "$DRIVERS_DIR" fi printf "Installing libjpcsc.so to /usr/lib\n" cp libjpcsc.so /usr/lib/libjpcsc.so if [ -f "/etc/init.d/pcscd" ]; then printf "Patching PC/SC Smart Card Daemon\n" sed -i 's/^exit 0$/#exit 0/' /etc/init.d/pcscd printf "Restarting PC/SC Smart Card Daemon\n" /etc/init.d/pcscd stop /etc/init.d/pcscd start else printf $YELLOW_COLOR"WARNING: Please restart PC/SC Smart Card Daemon for changes to take effect.\n"$COLOR_END fi printf $GREEN_COLOR"Installation completed successfully.\n"$COLOR_END cd / rm -r "/tmp/$SETUPNAME.$$" exit 0; 8 nR setup-64.tar Y tו%`V9$, '`ƆvS8'4! K8S~OJ[N&Ðt6ä%lxFb_@@s}tzΜw߽Uv|=DםW
忰bs/<-0?U4Nm`Lg-d˔_8"K1'=^)C.|gqjNT$i4}OJI27~3x&;|7ך)%z1^/ղ7v*ͥIJ.h+On|Ϛo.?Z ~T?gD/%jb|J:>mmtsǬ,q0ߖmkRu$O|&s5ڦq˽;3mwOF~wk^no8ί~v͗ݷ7]~?}1H$[V2wևO5xE7N7/_jwhgjShWc|5_4o~V?h_ꛯ4ܧ;vh5֮1NR4_a75lQC4Nz 1,* %7kk؟ߨ[5?UOßF?