⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preinst.sh

📁 linux下的终端管理工具源码
💻 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 + -