📄 preinst.sh
字号:
#!/bin/shAPPLNK_DIR="/usr/NX/share/applnk"LINK_NAME="/@PRODUCT_NAME@ Client for Linux"LINK_DIR_X="$APPLNK_DIR/x-nxclient"LINK_DIR_XK="$APPLNK_DIR/x-nxclient-kde"LINK_DIR_N="$APPLNK_DIR/network"LINK_DIR_NRH8="$APPLNK_DIR/network-rh8"LINK_DIR_NG="$APPLNK_DIR/network-gnome"LINK_DIR_C="$APPLNK_DIR/clean"LINK_DIR_TMP="$APPLNK_DIR/tmp"LINK_DIR_MDK="$APPLNK_DIR/mdk"XDK_LINK_DIR_X="$APPLNK_DIR/xdg-x"XDK_LINK_DIR_TMP="$APPLNK_DIR/xdg-tmp"XDG_MENU="/etc/xdg/menus/applications-merged"XDG_DIRECTORY="/usr/share/desktop-directories"XDG_DESKTOP="/usr/share/applications"KDE_APPLNK="/usr/share/applnk/"KDE_APPLNK_RH="/usr/share/applnk-redhat/"KDE2_APPLNK_SUSE="/opt/kde2/share/applnk/"KDE3_APPLNK_SUSE="/opt/kde3/share/applnk/"GNOME_APPLNK="/usr/share/gnome/apps/"GNOME_APPLNK_SUSE="/opt/gnome/share/gnome/apps/"GNOME_APPLNK_MDK="/var/lib/gnome/Mandrake/"ALL_APPLNK_MDK="/usr/share/applnk-mdk/"debug(){ echo $1 >> /tmp/nxinstall.txt}debug ""debug ""debugSystem(){ debug "" debug "release file:" debug "`cat $1`" debug "" debug "issue file:" debug "`cat /etc/issue`" debug "" debug "/etc/xdg dir:" if [ -d /etc/xdg ]; then debug "exist" else debug "not exist" fi debug "" debug "$XDG_MENU dir:" if [ -d $XDG_MENU ]; then debug "exist" else debug "not exist" fi debug "" debug "$XDG_DIRECTORY dir:" if [ -d $XDG_DIRECTORY ]; then debug "exist" else debug "not exist" fi debug "" debug "$XDG_DESKTOP dir:" if [ -d $XDG_DESKTOP ]; then debug "exist" else debug "not exist" fi debug "" debug "kde-config --path apps:" debug `( kde-config --path apps || echo not_found ) 2>/dev/null ` debug "" debug "gnome-config --datadir:" debug `( gnome-config --datadir || echo not_found ) 2>/dev/null ` debug ""}doCreateLink(){ if test -d "$2"; then if test -e "$2$LINK_NAME"; then rm -rf "$2$LINK_NAME" fi if test -d "$2/$3"; then if test -e "$2/$3/$LINK_NAME"; then rm -rf "$2/$3/$LINK_NAME" fi fi if test -d "$2/$3"; then debug "linking $1 to $2$3$LINK_NAME" ln -sf "$1" "$2$3$LINK_NAME" elif test -d "$2"; then debug "linking $1 to $2$LINK_NAME" ln -sf "$1" "$2$LINK_NAME" fi else debug "$2 don't exist" fi}doCreateSingleLinks(){ debug "linking $1/*.desktop to $2" if test -f "$1/nxclient-gnome.desktop"; then debug " using gnome only entrys" POST="-gnome" elif test -f "$1/nxclient-kde.desktop"; then debug " using kde only entrys" POST="-kde" else debug " using normal entrys" POST="" fi if test -d "$2"; then if test -e "$2/nxclient$POST.desktop"; then rm -f "$2/nxclient$POST.desktop" fi ln -sf "$1/nxclient$POST.desktop" $2/. if test -e "$2/nxclient-wizard$POST.desktop"; then rm -f "$2/nxclient-wizard$POST.desktop" fi ln -sf "$1/nxclient-wizard$POST.desktop" $2/. if test -e "$2/nxclient-help$POST.desktop"; then rm -f "$2/nxclient-help$POST.desktop" fi ln -sf "$1/nxclient-help$POST.desktop" $2/. if test -e "$2/nxclient-admin$POST.desktop"; then rm -f "$2/nxclient-admin$POST.desktop" fi ln -sf "$1/nxclient-admin$POST.desktop" $2/. else debug "$2 don't exist" fi }doCreateXGD(){ debug "linking to xdg tree"if test -d "/etc/xdg"; then if [ ! -d "$XDG_MENU" ]; then debug " fixing $XDG_MEN" mkdir -p "$XDG_MENU" fi if test -e "$XDG_MENU/nxclient.menu"; then rm -f "$XDG_MENU/nxclient.menu" fi debug " linking $2/nxclient.menu to $XDG_MENU" ln -sf "$2/nxclient.menu" $XDG_MENU/.fiif test -d "$XDG_DIRECTORY"; then if test -e "$XDG_DIRECTORY/nxclient.directory"; then rm -f "$XDG_DIRECTORY/nxclient.directory" fi debug " linking $2/nxclient.directory to $XDG_DIRECTORY" ln -sf "$2/nxclient.directory" $XDG_DIRECTORY/.fidoCreateSingleLinks $1 $XDG_DESKTOP}doCreateMDK(){debug "linking to mdk menu system"if test -d "/usr/lib/menu"; then if test -e "/usr/lib/menu/nxclient"; then rm -f "/usr/lib/menu/nxclient" fi debug " linking $LINK_DIR_MDK/nxclient to /usr/lib/menu/nxclient" ln -sf "$LINK_DIR_MDK/nxclient" "/usr/lib/menu/nxclient" debug " adding $LINK_DIR_MDK/menu to /usr/lib/menu/menu" #cat "$LINK_DIR_MDK/menu" >> "/usr/lib/menu/menu" echo "#?package(menu): needs=x11 section=\"Internet\" title=\"@PRODUCT_NAME@ Client for Linux\" icon=\"/usr/NX/share/icons/nx.png\""fi}if [ -f /etc/mandrake-release ]; then debug "detected mandrake" debugSystem "/etc/mandrake-release"# if [ -d /etc/xdg ]; then# debug " detected xdg"# doCreateXGD $LINK_DIR_X $XDK_LINK_DIR_X# else if [ -d "$ALL_APPLNK_MDK/Networking" ]; then debug " using Networking group" doCreateLink $LINK_DIR_C $ALL_APPLNK_MDK "Networking" doCreateLink $LINK_DIR_C $GNOME_APPLNK_MDK "Networking" else debug " using Internet group and native mdk menu system" doCreateMDK #doCreateLink $LINK_DIR_C $ALL_APPLNK_MDK "Internet" #doCreateLink $LINK_DIR_C $GNOME_APPLNK_MDK "Internet" #doCreateSingleLinks $LINK_DIR_NG $XDG_DESKTOP fielif [ -f /etc/redhat-release ]; then debug "detected redhat" debugSystem "/etc/redhat-release" VERS=`cat /etc/redhat-release` if [ "$VERS" = "Fedora Core release 4 (Stentz)" ]; then debug " detected fedora core 4" doCreateXGD $LINK_DIR_X $XDK_LINK_DIR_X elif [ "$VERS" = "Fedora Core release 1 (Yarrow)" ]; then debug " detected fedora core 1" debug " using rh8 entrys" doCreateSingleLinks $LINK_DIR_NRH8 $XDG_DESKTOP elif [ "$VERS" = "Fedora Core release 2 (Tettnang)" ]; then debug " detected fedora core 2" debug " using rh8 entrys" doCreateSingleLinks $LINK_DIR_NRH8 $XDG_DESKTOP elif [ "$VERS" = "Red Hat Linux release 9 (Shrike)" -o "$VERS" = "Red Hat Linux release 8.0 (Psyche)" ]; then debug " detected red hat 8/9" doCreateSingleLinks $LINK_DIR_NRH8 $XDG_DESKTOP #doCreateXGD $LINK_DIR_X $XDK_LINK_DIR_X #doCreateSingleLinks $LINK_DIR_NG $XDG_DESKTOP else if [ -d /etc/xdg ]; then debug " detected xdg" doCreateXGD $LINK_DIR_X $XDK_LINK_DIR_X else if [ -d $KDE_APPLNK ]; then doCreateLink $LINK_DIR_C $KDE_APPLNK "Internet" else doCreateLink $LINK_DIR_C $KDE_APPLNK_RH "Internet" fi if [ -d $GNOME_APPLNK ]; then doCreateLink $LINK_DIR_C $GNOME_APPLNK "Internet" else doCreateSingleLinks $LINK_DIR_N $XDG_DESKTOP fi fi fielif [ -f /etc/SuSE-release ]; then debug "detected suse" debugSystem "/etc/SuSE-release" VERS=`cat /etc/SuSE-release` if [ "$VERS" = "SuSE Linux 9.0 (i586)VERSION = 9.0" ]; then debug " detected suse 9.0" doCreateLink $LINK_DIR_C $KDE3_APPLNK_SUSE "Internet" doCreateSingleLinks $LINK_DIR_NG $XDG_DESKTOP else if [ -d /etc/xdg ]; then debug " detected xdg" doCreateXGD $LINK_DIR_X $XDK_LINK_DIR_X else doCreateLink $LINK_DIR_C $KDE2_APPLNK_SUSE "Internet" doCreateLink $LINK_DIR_C $KDE3_APPLNK_SUSE "Internet" doCreateLink $LINK_DIR_C $GNOME_APPLNK_SUSE "Internet" fi fielif [ -f /etc/debian_version ]; then debug "detected debian" debugSystem "/etc/debian_version" VERS=`cat /etc/debian_version` if [ "$VERS" = "testing/unstable" -a -f "/etc/xdg/menus/gnome-applications.menu" ]; then debug " detected debian unstable with separate gnome menu" doCreateXGD $LINK_DIR_XK $XDK_LINK_DIR_X doCreateSingleLinks $LINK_DIR_NG $XDG_DESKTOP else if [ -d /etc/xdg ]; then debug " detected xdg" doCreateXGD $LINK_DIR_X $XDK_LINK_DIR_X else doCreateLink $LINK_DIR_C $KDE_APPLNK "Internet" doCreateLink $LINK_DIR_C $GNOME_APPLNK "Internet" fi fielse debug "failed to detect any distro" debug "using defaults" if [ -d /etc/xdg ]; then debug " detected xdg" doCreateXGD $LINK_DIR_X $XDK_LINK_DIR_X else doCreateLink $LINK_DIR_C $KDE_APPLNK "Internet" doCreateLink $LINK_DIR_C $GNOME_APPLNK "Internet" fifi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -