global tclprocs

  • Creator
    Topic
  • #51540
    Kevin Crist
    Participant

    I just tried to make a softlink for a tclproc (first time trying it) and i am not getting the tclproc to show up in any other sites.

    i put the proc in gsh_global site, then went to the tclprocs directory and did the ln -s $HCIROOT/gsh_global/tclprocs/”proc file name” “proc file name” and then did mktclindex and i can see it in thier but just not in any other site. Did i do this the wrong way?

Viewing 0 reply threads
  • Author
    Replies
    • #70711
      Russ Ross
      Participant

      For a homegrown global TCL proc to show up across all sites you need to create the symbolic link in

      $HCIROOT/tclprocs

      and do your mktclindex in that directory.

      If you create your symbolic link in $HCISITEDIR/tclprocs it will only be visible to the global site and $HCISITEDIR.

      Unfortunately you will want to make a backup copy of

      $HCIROOT/tclprocs/tclIndex

      So you can do a diff after your mktclindex so you can add back the desired entries that get blown away ; otherwise, you could just make a backup copy and manually add the one entry of interest.

      We had a mda_global site with link in $HCIROOT/tclprocs for a long time.

      I did not find out recently about the lack of robustness of the $HCIROOT/tclprocs/tclIndex file and wasn’t impacted by it because it is the JAVA stuff that gets blown away.

      Here is a script we have been using to reduce the human error that recreates all the symbolic links in $HCIROOT/tclprocs for object in our mda_global site and does a mktclindex that you can build off of if you want.

      Now that we are at Cloverleaf 5.6 we simply specified mda_global as our master site and no lnger need homegrown symbolic links.

      Code:

      #!/usr/bin/ksh

      # Begin Module Header ==============================================================================
      #
      #——
      # Name:
      #——
      #
      # make_links_for_mda_global_tclprocs.ksh
      #
      #———
      # Purpose:
      #———
      #
      # Create all the $HCIROOT/tclprocs symbolic links for all *.tcl file in the mda_global site.
      #
      #——-
      # Notes:
      #——-
      #
      # will remove any existing links in the $HCIROOT/tclprocs directory and
      # will remove $HCIROOT/mda_global/tclprocs/tclIndex if it exists and
      # will do mktclindex for the $HCIROOT/tclprocs directory
      #
      #———
      # History:
      #———
      #
      # 2000.08.22 Russ Ross
      #          – wrote initial version
      #
      # 2003.01.08 Russ Ross
      #          – modified to create absolute paths in the links to adhere to team standard
      #
      # End of Module Header =============================================================================

      #————————————————————-
      # remove any existing links in the $HCIROOT/tclprocs directory
      # and chmod -rw-rw-r– all the mda_global TCL files
      #————————————————————-

      echo ==========
      cd $HCIROOT/tclprocs
      chmod 664 *
      mda_global_link_list=`ls -l | grep ^l | awk ‘{print $9}’`
      for mda_global_link in $mda_global_link_list; do
         echo Deleting link $mda_global_link
         rm $mda_global_link
      done

      #———————————————————-
      # get list of tcl file that will need links created and
      # remove $HCIROOT/mda_global/tclprocs/tclIndex if it exists
      #———————————————————-

      cd $HCIROOT/mda_global/tclprocs
      tcl_file_list=`ls *.tcl|sort`
      rm -f tclIndex

      #——————————————-
      # create the symbolic links
      #——————————————-

      echo ==========
      cd $HCIROOT/tclprocs
      for tcl_file in $tcl_file_list; do
         echo creating link for $tcl_file
         ln -s $HCIROOT/mda_global/tclprocs/$tcl_file $tcl_file
      done

      #————————————————–
      # do mktclindex for the $HCIROOT/tclprocs directory
      #————————————————–

      echo ==========
      echo Making TCL index file
      mktclindex

      To use prior to Cloverleaf 5.6 simply put the global object in $HCIROOT/mda_global/tclprocs and run it to take care of the rest.

      Then if you do a manual diff of the current and backup copy of $HCIROOT/tclprocs/tclIndex to get the problematic entries you can add them back of make a separate static file of the problematic entries and modify the script to concatenate the back to $HCIROO/tclprocs/tclIndex each time the script is run.

      Here are what the problematic entries look like on Cloverleaf 5.6 I’m talking about; they are problematic because the objects arent in $HCIROOT/tclprocs and there isn’t a symbolic link in that directory to the objects.

      Code:

      set auto_index(cljTPS) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(cljXLTStrings) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(cljXLTObjects) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(cljTrxid) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(Rm_GetStrings_grm) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(Rm_GetStrings_xpm) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(Rm_GetObjects_grm) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(Rm_GetObjects_xpm) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(Rm_GetString_grm) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(Rm_GetString_xpm) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(Rm_GetObject_grm) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(Rm_GetObject_xpm) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(SpliceStacks) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(jtpsRun) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(jtpsStart) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(jtpsTime) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]
      set auto_index(jtrxidProcess) [list SourceFilter [file join $dir ../tcl/lib/tfc/cloverleafJava.tcl]]

      Russ Ross
      RussRoss318@gmail.com

Viewing 0 reply threads
  • The forum ‘Tcl Library’ is closed to new topics and replies.

Forum Statistics

Registered Users
5,129
Forums
28
Topics
9,301
Replies
34,447
Topic Tags
288
Empty Topic Tags
10