Mercurial > hg > octave-lyh
view scripts/miscellaneous/run.m @ 11722:1b9fc670dce0 release-3-0-x
Fix tempdir's documention string to point at tempdir
author | weber@num.uni-sb.de |
---|---|
date | Fri, 28 Mar 2008 14:52:55 -0400 |
parents | 4a853a9138e7 |
children | 2f0920d1edd4 |
line wrap: on
line source
## Copyright (C) 2007 David Bateman ## ## This file is part of Octave. ## ## Octave is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3 of the License, or (at ## your option) any later version. ## ## Octave is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Octave; see the file COPYING. If not, see ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- ## @deftypefn {Function File} {} run (@var{f}) ## @deftypefnx {Command} {} run @var{f} ## Run scripts in the current workspace that are not necessarily on the ## path. If @var{f} is the script to run, including its path, then @code{run} ## change the directory to the directory where @var{f} is found. @code{run} ## then executes the script, and returns to the original directory. ## @seealso{system} ## @end deftypefn ## PKG_ADD: mark_as_command run function run (s) if (nargin != 1) print_usage (); endif [d, f, ext] = fileparts (s); if (! isempty (d)) if (exist (d, "dir")) wd = pwd (); unwind_protect cd (d); if (! exist (s, "file") || ! strcmp (ext, ".m")) error ("run: file must exist and be a valid Octave script file"); endif evalin ("caller", [f, ";"], "rethrow (lasterror ())"); unwind_protect_cleanup cd (wd); end_unwind_protect else error ("run: the path %s doesn't exist", d); endif else if (exist (f, "file")) evalin ("caller", [f, ";"], "rethrow (lasterror ())"); else error ("run: %s not found", s); endif endif endfunction