#!/usr/sbin/perl #************************************************************************** #* * #* Copyright (c) 1996 Silicon Graphics, Inc. * #* All Rights Reserved * #* * #* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF SGI * #* * #* The copyright notice above does not evidence any actual of intended * #* publication of such source code, and is an unpublished work by Silicon * #* Graphics, Inc. This material contains CONFIDENTIAL INFORMATION that is * #* the property of Silicon Graphics, Inc. Any use, duplication or * #* disclosure not specifically authorized by Silicon Graphics is strictly * #* prohibited. * #* * #* RESTRICTED RIGHTS LEGEND: * #* * #* Use, duplication or disclosure by the Government is subject to * #* restrictions as set forth in subdivision (c)(1)(ii) of the Rights in * #* Technical Data and Computer Software clause at DFARS 52.227-7013, * #* and/or in similar or successor clauses in the FAR, DOD or NASA FAR * #* Supplement. Unpublished - rights reserved under the Copyright Laws of * #* the United States. Contractor is SILICON GRAPHICS, INC., 2011 N. * #* Shoreline Blvd., Mountain View, CA 94039-7311 * #************************************************************************** # DEMO_tree.pl # # Routines to add or edit demos 1; # return true sub Is_Multiple_Trees { local(@trees); @trees = &List_Tree_Names; return($#trees); } sub List_Tree_Names { local(@names, $name); open(NAMESPACE, "$FILE_TREES_NAMESPACE") || &Print_Error("$ERROR_NO_OPEN", "$FILE_TREES_NAMESPACE", "$STATUS_SERIOUS"); while () { chop; ($name,$file) = /(.*)$TREES_DELIM.*$TREES_DELIM(.*)/; push(@names, $name) if ($name); } close(NAMESPACE); return(&alpha(@names)); } sub Demos_In_Tree { local($tree_name, $tree_file, @demos); $tree_name = $_[0]; $tree_file = &Tree_File_From_Name("$tree_name"); open(TREEFILE, "$PATH_TREES_DIR/$tree_file"); while () { chop; push(@demos, $_) if ($_); } close(TREEFILE); return(@demos); } # Creates as %demo_list sub Assoc_Demos_In_All_Trees { local($tree_name, $tree_file, @demos); open(LISTFILE, "$FILE_DEMOLIST"); while () { chop; ($demo_name, $tree_name) = /(.*)$TREES_DELIM(.*)/; if ("$demo_name" ne "" && "$tree_name" ne "") { $demo_list{$demo_name} = $tree_name; } } close(LISTFILE); } sub Demos_In_All_Trees { local($tree_name, $tree_file, @demos); open(LISTFILE, "$FILE_DEMOLIST"); while () { chop; push(@demos, "$_") if ($_); } close(LISTFILE); return(&alpha(@demos)); } sub Is_Demo_In_Tree { local($demo_name, $demo_tree, $file_name); $demo_name = shift; $demo_tree = shift; $file_name = &Tree_File_From_Name("$demo_tree"); open(TREEFILE, "$PATH_TREES_DIR/$file_name"); while() { chop; return(1) if ("$_" eq "$demo_name"); } return(0); } sub Tree_File_From_Name { open(NAMESPACE, "$FILE_TREES_NAMESPACE") || &Print_Error("$ERROR_NO_OPEN", "$FILE_TREES_NAMESPACE", "$STATUS_SERIOUS"); while () { chop; ($name,$file) = /(.*)$TREES_DELIM.*$TREES_DELIM(.*)/; if ("$name" eq "$_[0]") { close(NAMESPACE); return("$file"); } } close(NAMESPACE); &Print_Error("$ERROR_DB", "Name- \'$_[0]\'", "$STATUS_SERIOUS"); return(0); } sub Tree_Path_From_Name { local($name, $path); open(NAMESPACE, "$FILE_TREES_NAMESPACE") || &Print_Error("$ERROR_NO_OPEN", "$FILE_TREES_NAMESPACE", "$STATUS_SERIOUS"); while () { chop; ($name,$path) = /(.*)$TREES_DELIM(.*)$TREES_DELIM.*/; if ("$name" eq "$_[0]") { close(NAMESPACE); return($path); } } close(NAMESPACE); &Print_Error("$ERROR_DB", "Name- \'$_[0]\'", "$STATUS_SERIOUS"); return(0); } sub Tree_Name_From_Path { local($name, $path); open(NAMESPACE, "$FILE_TREES_NAMESPACE") || &Print_Error("$ERROR_NO_OPEN", "$FILE_TREES_NAMESPACE", "$STATUS_SERIOUS"); while () { chop; ($name,$path) = /(.*)$TREES_DELIM(.*)$TREES_DELIM.*/; if ("$path" eq "$_[0]") { close(NAMESPACE); return($name); } } close(NAMESPACE); if (!$_[1]) { # Check for query override &Print_Error("$ERROR_DB", "Path- \'$_[0]\'", "$STATUS_SERIOUS"); return(0); } else { return(""); } }