######################################################################## # Method: add_element # Use: Adds an element to an existing package # Created: 07/27/98 Michael Nelson ######################################################################## sub add_element { local($element_name) = $in{"element_name"}; local($pkg_name) = $in{"pkg_name"}; local($element_bib) = $in{"element_bib"}; # file is stored in $in{"upfile"} -- don't make a local copy. # even though we pass by value below.... # add .pkg at the end unless its already there $pkg_name =~ s/$/.pkg/ unless $pkg_name =~ /.pkg$/; $element_name = &name_collision($pkg_name, $element_name); &write_element($pkg_name, $element_name, $in{"upfile"}); &append_bibfile($BIBFILE,$element_bib,"^PACKAGE-END:: $pkg_name"); &http_header("text/plain"); print "add_element: element $pkg_name/$element_name added\n"; &log("add_element","OK","element $pkg_name/$element_name added"); } ######################################################################## # Subroutine: write_element # Use: writes the element out # Called by: add_element, many others # Created: 08/19/98 Michael Nelson ######################################################################## sub write_element { local($package, $element, $file) = @_; # no error checking yet... open(E,">$package/$element"); print E "$file"; close(E); } 1;