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

📄 app_gen.ins

📁 genesis 2000 v9.1软件下载
💻 INS
📖 第 1 页 / 共 5 页
字号:
   other applications.
"
}
#####################################################################
proc app_gen_startup_cb {MODE} {
  global VPIG
  global APP_GEN_G

  set ROOT_MODE error
  if { $MODE != "Standard" } {
    set ROOT_MODE warning
  }
  if { ! [tku_is_root $ROOT_MODE] } {
    return "error"
  }

  if { $VPIG(OS) == "nt" } {
     set STATUS [nt_system_install $MODE]
     if { $STATUS != "ok" } { return $STATUS }
  } else {
     if { $MODE == "Custom" || \
        ($MODE == "Standard" && $APP_GEN_G(INSTALL_TYPE) == "full") } {
        set STATUS [do_global_startup $MODE]
        if { $STATUS != "ok" && $STATUS != "cancel" } { return $STATUS }
     }
     set STATUS [do_local_startup $MODE]
     if { $STATUS != "ok" } { return $STATUS }
  }
  return "ok"
}

proc do_global_startup {MODE}  {
  global VPIG
  global APP_GEN_G

  if { $APP_GEN_G(SC_MODE) == "client" } {
    return "ok"
  }

  set DEST_PATH $APP_GEN_G(DEST_PATH)
  set VER_NUM [get_version_number $VPIG(NAME_VERSION)]
  set EDIR_LOCATION [get_edir_location $DEST_PATH]
  if { $EDIR_LOCATION == $DEST_PATH } {
    set GENESIS_EDIR "e$VER_NUM"
  } else {
    set GENESIS_EDIR [file join $EDIR_LOCATION e$VER_NUM]
  }
  set OS $VPIG(OS)

  if [string match "/*" $GENESIS_EDIR] {
    set ADD_RCLINES [list                                               \
			 "GENESIS_VER=$VER_NUM"				\
			 "export GENESIS_VER"				\
			 "GENESIS_DIR=$APP_GEN_G(DEST_PATH)"		\
			 "export GENESIS_DIR"				\
			 "GENESIS_EDIR=$GENESIS_EDIR"                   \
			 "export GENESIS_EDIR"				\
			 "echo Starting license daemon..."         	\
			 "\$GENESIS_EDIR/gnd/gnd"           		\
			]
  } else {
    set ADD_RCLINES [list                                               \
			 "GENESIS_VER=$VER_NUM"				\
			 "export GENESIS_VER"				\
			 "GENESIS_DIR=$APP_GEN_G(DEST_PATH)"		\
			 "export GENESIS_DIR"				\
			 "GENESIS_EDIR=$GENESIS_EDIR"                   \
			 "export GENESIS_EDIR"				\
			 "echo Starting license daemon..."	        \
			 "\$GENESIS_DIR/\$GENESIS_EDIR/gnd/gnd"         \
			]

  }

  set ADD_RCLINES_HP10 [list                                            \
			    "# Genesis configuration"                   \
			    "#"                                         \
			    "# GENESIS:	Set to 1 to start GENESIS"      \
			    "#"                                         \
			    "GENESIS=1"                                 \
			    "GENESIS_VER=$VER_NUM"                      \
			    "GENESIS_DIR=$APP_GEN_G(DEST_PATH)"         \
			    "GENESIS_EDIR=$GENESIS_EDIR"                \
			   ]

  switch -- $OS {
    aix {
      set RCFILE "/etc/rc"
      set OSNAME "IBM/AIX"
      set FILE_TYPE public
    }
    hp10 {
      set RCFILE1 "/sbin/init.d/genesis"
      set RCFILE2 "/etc/rc.config.d/genesis"
      set RCFILE $RCFILE1
      set LINK1   "/sbin/rc2.d/S900genesis"
      set LINK2   "/sbin/rc2.d/K100genesis"
      set OSNAME "HP-UX 10"
      set FILE_TYPE private_hp10
    }
    nt {
      bgerror "NT - undefined startup file"
      set OSNAME "Windows NT"
      set FILE_TYPE undefined
    }
    solaris {
      set RCFILE "/etc/rc2.d/S95genesis"
      set OSNAME "Sun Solaris"
      set FILE_TYPE private_solaris
    }
    linux {
      set RCFILE "/etc/init.d/genesis"
      if [file isdirectory "/etc/rc5.d"] {
         set RCFILELINK "/etc/rc5.d/S95genesis"
      } else {
         set RCFILELINK "/etc/init.d/rc5.d/S95genesis"
      }
      set OSNAME "Linux"
      set FILE_TYPE private_linux
    }
    default {
      bgerror "Switch error app_gen.ins (v8.1)"
    }
  }

  set CHOICE [tku_popup_message question yesno \
		  "Operating system : $OSNAME\
	         \nStart up file    : $RCFILE\
	       \n\nDo you wish to update it for version $VER_NUM ?"]
  if { $CHOICE == "no" } {
    return "cancel"
  }

  switch -- $FILE_TYPE {
    public {
      ################### aix hp9 sunos ####################
      #
      #  Read the startup file, find out if it was ever set
      #  and update the version number.
      #
      if [catch { open $RCFILE "RDONLY"} FP] {
	tku_popup_message error ok $FP
	return "error"
      }	
      set RCLINES [split [read $FP] \n]
      set NEW_RCLINES [list]
      set ADD_EXIT 0

      foreach RCLINE $RCLINES {
	set TEST [string toupper $RCLINE]
	if [string match "*GENESIS*" $TEST] {
	  set COL1 [string range $RCLINE 0 0]
	  if { $COL1 != "#" } {
	    set RCLINE \#$RCLINE
	  }
	}
	#
	# This is for aix, for example, where the /etc/rc
	# file contains the "exit 0" statement.
	#
	if [string match "*exit*0" $RCLINE] {
	  set ADD_EXIT 1
	} else {
	  lappend NEW_RCLINES $RCLINE
	}
      }
      close $FP
      #
      #  Write the updated file
      #
      if [catch { open $RCFILE "WRONLY"} FP] {
	tku_popup_message error ok $FP
	return "error"
      }	
      foreach RCLINE $NEW_RCLINES {
	puts $FP $RCLINE
      }
      foreach RCLINE $ADD_RCLINES {
	puts $FP $RCLINE
      }

      if { $ADD_EXIT } {
	puts $FP "exit 0"
      }
      close $FP
    }
    private_hp10 { #################### hp10 ####################
      set EDIR_LOCATION [get_edir_location $APP_GEN_G(DEST_PATH)]
      set EDIR [file join $EDIR_LOCATION e$VER_NUM]
      set SFILE1 [file join $EDIR all install hp10.init.d]
      if [catch {file copy -force $SFILE1 $RCFILE1} RESPONSE] {
	tku_popup_message error ok $RESPONSE
	return "error"
      }	
      if [catch {file attributes $RCFILE1 -permissions 0755} RESPONSE] {
	tku_popup_message error ok $RESPONSE
	return "error"
      }	
      if [file exists $RCFILE2] {
	if [catch { file delete $RCFILE2} RESPONSE] {
	  tku_popup_message error ok $RESPONSE
	  return "error"
	}
      }
      if [catch {open $RCFILE2 {WRONLY CREAT}} FP] {
	tku_popup_message error ok $FP
	return "error"
      }	
      foreach RCLINE $ADD_RCLINES_HP10 {
	puts $FP $RCLINE
      }
      close $FP
      foreach LINK [list $LINK1 $LINK2] {
	if [file exists $LINK] {
	  if [catch {file delete $LINK} RESPONSE] {
	    tku_popup_message error ok $RESPONSE
	    return "error"
	  }
	}
	if [catch {exec ln -s $RCFILE1 $LINK} RESPONSE] {
	  tku_popup_message error ok $RESPONSE
	  return "error"
	}	
      }
    }
    private_solaris {  ##################### solaris ####################
      if [file exists $RCFILE] {
	if [catch { file delete $RCFILE} RESPONSE] {
	  tku_popup_message error ok $RESPONSE
	  return "error"
	}
      }
      if [catch { open $RCFILE {WRONLY CREAT}} FP] {
	tku_popup_message error ok $FP
	return "error"
      }	
      foreach RCLINE $ADD_RCLINES {
	puts $FP $RCLINE
      }
      close $FP
      if [catch {file attributes $RCFILE -permissions 0755} RESPONSE] {
	tku_popup_message error ok $RESPONSE
	return "error"
      }	
    }
    private_linux {  ##################### linux ####################
      if [file exists $RCFILELINK] {
	if [catch { file delete $RCFILELINK} RESPONSE] {
	  tku_popup_message error ok $RESPONSE
	  return "error"
	}
      }
      if [file exists $RCFILE] {
	if [catch { file delete $RCFILE} RESPONSE] {
	  tku_popup_message error ok $RESPONSE
	  return "error"
	}
      }
      if [catch { open $RCFILE {WRONLY CREAT}} FP] {
	tku_popup_message error ok $FP
	return "error"
      }	
      foreach RCLINE $ADD_RCLINES {
	puts $FP $RCLINE
      }
      close $FP
      if [catch {file attributes $RCFILE -permissions 0755} RESPONSE] {
	tku_popup_message error ok $RESPONSE
	return "error"
      }
      # Put a link to a "/etc/init.d/genesis" file 
      # as "/etc/init.d/rc5.d/S95genesis" or "/etc/rc5.d/S95genesis"
      if [catch {exec ln -s $RCFILE $RCFILELINK} RESPONSE] {
	tku_popup_message error ok $RESPONSE
	return "error"
      }	
    }
    default {
      bgerror "Switch error app_gen.ins (v8.1)"
    }
  }

  return "ok"
}

#.................................................................
proc do_local_startup {MODE} {

   global VPIG
   global APP_GEN_G

   set CSH_NAME "init.csh"
   set SH_NAME  "init.sh"

   set CSH_INIT_PATH [file join $APP_GEN_G(DEST_PATH) $CSH_NAME ]
   set SH_INIT_PATH  [file join $APP_GEN_G(DEST_PATH) $SH_NAME ]

   if { $APP_GEN_G(SC_MODE) == "server" } {
      set STATUS [local_startup_write_init_files $CSH_INIT_PATH $SH_INIT_PATH]
      if { $STATUS != "ok" } {
         return $STATUS
      }
   } else {
      set STATUS [local_startup_check_init_files $CSH_INIT_PATH $SH_INIT_PATH]
      if { $STATUS != "ok" } {
         return $STATUS
      }
   }

   set TMP_NAME [tclu_get_tmp_name tmp_vpi]
   if {[catch {open $TMP_NAME w} FP]} {
      tku_popup_message error ok \
         [format "Cannot open temporary file.\
                \nFile=%s"  \
                 $TMP_NAME]
      return "error"	
   }
   set CSH_LINE [format \
      "For csh/tcsh users:\
     \n-------------------\
     \nsource $CSH_INIT_PATH"]
   set SH_LINE [format \
      "For sh/ksh users:\
     \n-----------------\
     \n. $SH_INIT_PATH"]
   puts $FP "$CSH_LINE\n\n$SH_LINE"
   close $FP
   set BREAK 0
   set CHOICES [list OK "Show $CSH_NAME" "Show $SH_NAME"]
   while { ! $BREAK } {
     set CHOICE [tku_popup_message info $CHOICES \
       "System Administrator:\
      \nPlease make sure to include the following startup file\
      \nfor each user"  \
        $TMP_NAME]
     set PATH ""
     set CHOICE_NUM [lsearch $CHOICES $CHOICE]
     switch -- $CHOICE_NUM {
        1 {
  	   set PATH  $CSH_INIT_PATH
        }
        2 {
	   set PATH  $SH_INIT_PATH
        }
	default {
	   set BREAK 1
	}	
     }
     if { $PATH != "" } {
        tku_popup_message info ok \
 	   "Contents of file $PATH" $PATH
     }
   }
   file delete $TMP_NAME

##########################################
# Install menu shortcuts for Linux
   set DEST_PATH $APP_GEN_G(DEST_PATH)
   set VER_NUM [get_version_number $VPIG(NAME_VERSION)]
   set EDIR_LOCATION [get_edir_location $DEST_PATH]
   set EDIR [file join $EDIR_LOCATION e$VER_NUM]

#   tku_popup_message error ok \
#		   "DEST_PATH=$DEST_PATH, EDIR_LOCATION=$EDIR_LOCATION"

#   if {$VPIG(OS) == "linux"} {}
   if {$VPIG(OS) == "linux_not_working_in_latest_versions(mikets)"} {
       set FOLDER [file join $EDIR all linux applnk]
       set EXISTS [tclu_file_exists $FOLDER]
       set IS_DIR [tclu_is_path_dir $FOLDER]

       if { $EXISTS } {
	   if {!$IS_DIR } {
	       tku_popup_message error ok \
		   "Path is an existing file\
  	     \n\nName  = $FOLDER\n"
	       return error
	   }
       } else {
         set STATUS [tclu_mkdir $FOLDER 1]
         if { $STATUS != 0 } {
            return error
         }
       }
       # check again
       set EXISTS [tclu_file_exists $FOLDER]
       set IS_DIR [tclu_is_path_dir $FOLDER]
       if { $EXISTS && $IS_DIR } {
	   # Write the ".directory" file
	   if [catch { open [file join $FOLDER ".directory"] {WRONLY CREAT TRUNC} 0666} FP] {
	       tku_popup_message error ok $FP
	       return "error"
	   }	
	   puts $FP "\[Desktop Entry]"
	   puts $FP "Comment="
	   puts $FP "Icon=[file join $EDIR all pixmaps get.xpm]"
	   puts $FP "Name=Frontline-PCB"
	   puts $FP "Type=Directory"
	   close $FP

	   # Write the "get.desktop" file
	   if [catch { open [file join $FOLDER "get.desktop"] {WRONLY CREAT TRUNC} 0666} FP] {
	       tku_popup_message error ok $FP
	       return "error"
	   }	
	   puts $FP "\[Desktop Entry]"
	   puts $FP "Comment="
	   puts $FP "Exec=[file join $EDIR get get]"
	   puts $FP "Icon=[file join $EDIR all pixmaps get.xpm]"
	   puts $FP "Name=Genesis"
	   puts $FP "Path="
	   puts $FP "Terminal=true"
	   puts $FP "Type=Application"
	   close $FP

	   # Write the "gfb.desktop" file
	   if [catch { open [file join $FOLDER "gfb.desktop"] {WRONLY CREAT TRUNC} 0666} FP] {
	       tku_popup_message error ok $FP
	       return "error"
	   }	
	   puts $FP "\[Desktop Entry]"
	   puts $FP "Comment="
	   puts $FP "Exec=[file join $EDIR gfb gfb]"
	   puts $FP "Icon=[file join $EDIR all pixmaps get_form.xpm]"
	   puts $FP "Name=Genesis Form Builder"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -