Mercurial > hg > octave-nkf
changeset 13863:b81e0b3fedab
news: support to read news of installed packages
author | Carnë Draug <carandraug+dev@gmail.com> |
---|---|
date | Thu, 03 Nov 2011 12:11:31 +0000 |
parents | 55ab001af1b8 |
children | a03e96aa4977 |
files | scripts/miscellaneous/news.m |
diffstat | 1 files changed, 29 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/miscellaneous/news.m +++ b/scripts/miscellaneous/news.m @@ -17,14 +17,33 @@ ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- -## @deftypefn {Function File} {} news () -## Display the current NEWS file for Octave. +## @deftypefn {Function File} {} news (@var{package}) +## Display the current NEWS file for Octave or installed package. +## +## If @var{package} is the name of an installed package, display the current +## NEWS file for that package. ## @end deftypefn -function news () +function news (package) + + ## also let users specify 'octave' + if (nargin == 0 || (nargin == 1 && ischar (package) && strcmpi (package, "octave"))) + octetcdir = octave_config_info ("octetcdir"); + newsfile = fullfile (octetcdir, "NEWS"); - octetcdir = octave_config_info ("octetcdir"); - newsfile = fullfile (octetcdir, "NEWS"); + elseif (nargin == 1 && ischar (package)) + installed = pkg ("list"); + names = cellfun (@(x) x.name, installed, "UniformOutput", false); + ## we are nice and let the user use any case on the package name + pos = strcmpi (names, package); + if (!any (pos)) + error ("Package '%s' is not installed.", package); + endif + newsfile = fullfile (installed{pos}.dir, "doc", "NEWS"); + + else + print_usage; + endif if (exist (newsfile, "file")) f = fopen (newsfile, "r"); @@ -32,11 +51,14 @@ puts (line); endwhile else - error ("news: unable to locate NEWS file"); + if (package) + error ("news: unable to locate NEWS file of %s package", package); + else + error ("news: unable to locate NEWS file"); + endif endif endfunction - ## Remove from test statistics. No real tests possible %!assert (1)