Mercurial > octave
annotate scripts/pkg/pkg.m @ 30564:796f54d4ddbf stable
update Octave Project Developers copyright for the new year
In files that have the "Octave Project Developers" copyright notice,
update for 2021.
In all .txi and .texi files except gpl.txi and gpl.texi in the
doc/liboctave and doc/interpreter directories, change the copyright
to "Octave Project Developers", the same as used for other source
files. Update copyright notices for 2022 (not done since 2019). For
gpl.txi and gpl.texi, change the copyright notice to be "Free Software
Foundation, Inc." and leave the date at 2007 only because this file
only contains the text of the GPL, not anything created by the Octave
Project Developers.
Add Paul Thomas to contributors.in.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 28 Dec 2021 18:22:40 -0500 |
parents | 420608d1d370 |
children | f67d2ce5d6d4 |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 ######################################################################## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 ## |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30419
diff
changeset
|
3 ## Copyright (C) 2005-2022 The Octave Project Developers |
27918
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
27794
diff
changeset
|
4 ## |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11547
diff
changeset
|
7 ## |
6440 | 8 ## This file is part of Octave. |
9 ## | |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
6440 | 11 ## under the terms of the GNU General Public License as published by |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22529
diff
changeset
|
13 ## (at your option) any later version. |
6440 | 14 ## |
15 ## Octave is distributed in the hope that it will be useful, but | |
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22529
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22529
diff
changeset
|
18 ## GNU General Public License for more details. |
6440 | 19 ## |
5801 | 20 ## You should have received a copy of the GNU General Public License |
7016 | 21 ## along with Octave; see the file COPYING. If not, see |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 ## |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 ######################################################################## |
5801 | 25 |
26 ## -*- texinfo -*- | |
20852
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20727
diff
changeset
|
27 ## @deftypefn {} {} pkg @var{command} @var{pkg_name} |
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20727
diff
changeset
|
28 ## @deftypefnx {} {} pkg @var{command} @var{option} @var{pkg_name} |
22529
640c1b476860
pkg.m: more clearly document package querying options (bug #49156)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
22323
diff
changeset
|
29 ## @deftypefnx {} {[@var{out1}, @dots{}] =} pkg (@var{command}, @dots{} ) |
640c1b476860
pkg.m: more clearly document package querying options (bug #49156)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
22323
diff
changeset
|
30 ## Manage or query packages (groups of add-on functions) for Octave. |
19187 | 31 ## |
28713
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
32 ## Packages can be installed globally (i.e., for all users of the system) or |
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
33 ## locally (i.e., for the current user only). |
28343
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
34 ## |
28713
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
35 ## Global packages are installed by default in a system-wide location. This is |
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
36 ## usually a subdirectory of the folder where Octave itself is installed. |
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
37 ## Therefore, Octave needs write access to this folder to install global |
30411
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
38 ## packages, which is usually only available when Octave is run with |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
39 ## administrative privileges, such as when run as root (or superuser) on |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
40 ## Unix-like systems, or run with elevated privileges ("Run as administrator") |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
41 ## on Windows. |
28343
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
42 ## |
30411
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
43 ## In contrast, local packages are installed by default in the user's home |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
44 ## directory (or user profile on Windows) and are only available to that |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
45 ## specific user. Usually, they can be installed without administrative |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
46 ## privileges. |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
47 ## |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
48 ## When Octave is running with administrative privileges, @code{pkg} will |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
49 ## install packages to the global package location by default. Otherwise, |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
50 ## packages will be installed to the local location by default. The user can |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
51 ## override this default installation location with optional arguments |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
52 ## (@option{-local} or @option{-global}) as described below. The currently |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
53 ## used default package installation location can be queried with |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
54 ## @code{pkg prefix}. |
28343
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
55 ## |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
56 ## For global and local packages, there are separate databases holding the |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
57 ## information about the installed packages. If some package is installed |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
58 ## globally as well as locally, the local installation takes precedence over |
30411
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
59 ## ("shadows") the global one. Which (global or local) package installation is |
28343
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
60 ## used can also be manipulated by using prefixes and/or using the |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
61 ## @samp{local_list} input argument. Using these mechanisms, several different |
30411
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
62 ## releases of the same package can be installed side by side as well (but |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
63 ## cannot be loaded simultaneously). |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
64 ## |
28714
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
65 ## Packages might depend on external software and/or other packages. To be |
28343
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
66 ## able to install such packages, these dependencies should be installed |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
67 ## beforehand. A package that depends on other package(s) can still be |
28714
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
68 ## installed using the @option{-nodeps} flag. The effects of unsatisfied |
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
69 ## dependencies on external software---like libraries---depends on the |
28343
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
70 ## individual package. |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
71 ## |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
72 ## Packages must be loaded before they can be used. When loading a package, |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
73 ## Octave performs the following tasks: |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
74 ## @enumerate |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
75 ## @item |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
76 ## If the package depends on other packages (and @code{pkg load} is called |
28714
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
77 ## without the @option{-nodeps} option), the package is not loaded |
28713
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
78 ## immediately. Instead, those dependencies are loaded first (recursively if |
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
79 ## needed). |
28343
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
80 ## |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
81 ## @item |
28714
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
82 ## When all dependencies are satisfied, the package's subdirectories are |
28713
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
83 ## added to the search path. |
28343
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
84 ## @end enumerate |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
85 ## |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
86 ## This load order leads to functions that are provided by dependencies being |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
87 ## potentially shadowed by functions of the same name that are provided by |
28714
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
88 ## top-level packages. |
28343
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
89 ## |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
90 ## Each time, a package is added to the search path, initialization script(s) |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
91 ## for the package are automatically executed if they are provided by the |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
92 ## package. |
8b71a6cec9bf
pkg.m: Add introduction to packages to doc string (bug #58225).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28278
diff
changeset
|
93 ## |
28713
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
94 ## Depending on the value of @var{command} and on the number of requested |
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
95 ## return arguments, @code{pkg} can be used to perform several tasks. |
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
96 ## Possible values for @var{command} are: |
6032 | 97 ## |
98 ## @table @samp | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
99 ## |
6032 | 100 ## @item install |
6070 | 101 ## Install named packages. For example, |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
102 ## |
6070 | 103 ## @example |
104 ## pkg install image-1.0.0.tar.gz | |
105 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
106 ## |
6070 | 107 ## @noindent |
24934
1db0b81efafe
maint: strip trailing whitespace from source files
Mike Miller <mtmiller@octave.org>
parents:
24877
diff
changeset
|
108 ## installs the package found in the file @file{image-1.0.0.tar.gz}. The |
27574
c89a6f3eab69
pkg.m: Use uppercase URL in documentation and error messages.
Rik <rik@octave.org>
parents:
27573
diff
changeset
|
109 ## file containing the package can be a URL, e.g., |
24872
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
110 ## |
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
111 ## @example |
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
112 ## pkg install 'http://somewebsite.org/image-1.0.0.tar.gz' |
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
113 ## @end example |
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
114 ## |
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
115 ## @noindent |
27794
45ad2127582b
doc: grammarcheck scripts before 6.1 release.
Rik <rik@octave.org>
parents:
27707
diff
changeset
|
116 ## installs the package found in the given URL@. This |
24934
1db0b81efafe
maint: strip trailing whitespace from source files
Mike Miller <mtmiller@octave.org>
parents:
24877
diff
changeset
|
117 ## requires an internet connection and the cURL library. |
24872
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
118 ## |
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
119 ## @noindent |
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
120 ## @emph{Security risk}: no verification of the package is performed |
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
121 ## before the installation. It has the same security issues as manually |
27574
c89a6f3eab69
pkg.m: Use uppercase URL in documentation and error messages.
Rik <rik@octave.org>
parents:
27573
diff
changeset
|
122 ## downloading the package from the given URL and installing it. |
24872
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
123 ## |
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
124 ## @noindent |
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
125 ## @emph{No support}: the GNU Octave community is not responsible for |
24934
1db0b81efafe
maint: strip trailing whitespace from source files
Mike Miller <mtmiller@octave.org>
parents:
24877
diff
changeset
|
126 ## packages installed from foreign sites. For support or for |
1db0b81efafe
maint: strip trailing whitespace from source files
Mike Miller <mtmiller@octave.org>
parents:
24877
diff
changeset
|
127 ## reporting bugs you need to contact the maintainers of the installed |
24872
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
128 ## package directly (see the @file{DESCRIPTION} file of the package) |
6070 | 129 ## |
6645 | 130 ## The @var{option} variable can contain options that affect the manner |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
8942
diff
changeset
|
131 ## in which a package is installed. These options can be one or more of |
6645 | 132 ## |
133 ## @table @code | |
134 ## @item -nodeps | |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
135 ## The package manager will disable dependency checking. With this option it |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
136 ## is possible to install a package even when it depends on another package |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
137 ## which is not installed on the system. @strong{Use this option with care.} |
6645 | 138 ## |
139 ## @item -local | |
13141
e81ddf9cacd5
maint: untabify and remove trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
12931
diff
changeset
|
140 ## A local installation (package available only to current user) is forced, |
30411
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
141 ## even if Octave is being run with administrative privileges. |
6258 | 142 ## |
6645 | 143 ## @item -global |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
144 ## A global installation (package available to all users) is forced, even if |
30411
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
145 ## Octave is not being run with administrative privileges. The user must have |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
146 ## write access to the global package store. |
12642
f96b9b9f141b
doc: Periodic grammarcheck and spellcheck of documentation.
Rik <octave@nomad.inbox5.com>
parents:
12561
diff
changeset
|
147 ## |
12561
0ade5992e374
Add documentation for '-forge' option (bug #32464).
Rik <octave@nomad.inbox5.com>
parents:
12167
diff
changeset
|
148 ## @item -forge |
25836
07cb3e098c0a
Use "Octave Forge" spelling in all files.
Rik <rik@octave.org>
parents:
25539
diff
changeset
|
149 ## Install a package directly from the Octave Forge repository. This |
12561
0ade5992e374
Add documentation for '-forge' option (bug #32464).
Rik <octave@nomad.inbox5.com>
parents:
12167
diff
changeset
|
150 ## requires an internet connection and the cURL library. |
6614 | 151 ## |
20708
453fca9ae397
pkg: add warning about security implications when using -forge.
Carnë Draug <carandraug@octave.org>
parents:
20480
diff
changeset
|
152 ## @emph{Security risk}: no verification of the package is performed |
30411
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
153 ## before the installation. There are no signatures for packages, or |
20708
453fca9ae397
pkg: add warning about security implications when using -forge.
Carnë Draug <carandraug@octave.org>
parents:
20480
diff
changeset
|
154 ## checksums to confirm the correct file was downloaded. It has the |
453fca9ae397
pkg: add warning about security implications when using -forge.
Carnë Draug <carandraug@octave.org>
parents:
20480
diff
changeset
|
155 ## same security issues as manually downloading the package from the |
453fca9ae397
pkg: add warning about security implications when using -forge.
Carnë Draug <carandraug@octave.org>
parents:
20480
diff
changeset
|
156 ## Octave Forge repository and installing it. |
453fca9ae397
pkg: add warning about security implications when using -forge.
Carnë Draug <carandraug@octave.org>
parents:
20480
diff
changeset
|
157 ## |
6645 | 158 ## @item -verbose |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
159 ## The package manager will print the output of all commands as |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
160 ## they are performed. |
6645 | 161 ## @end table |
162 ## | |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
163 ## @item update |
25836
07cb3e098c0a
Use "Octave Forge" spelling in all files.
Rik <rik@octave.org>
parents:
25539
diff
changeset
|
164 ## Check installed Octave Forge packages against repository and update any |
30411
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
165 ## outdated items. Updated packages are installed either globally or locally |
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
166 ## depending on whether Octave is running with elevated privileges. This |
30419
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
167 ## requires an internet connection and the cURL library. |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
168 ## |
30419
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
169 ## Options for the install command and the names of individual packages to be |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
170 ## checked for updates may be specified as a list following the update |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
171 ## command. If the @option{-local} or @option{-global} option is specified, |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
172 ## @code{pkg update} limits the update check to the local or global installed |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
173 ## packages, and installs updates in that same context. For example, |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
174 ## |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
175 ## Update all packages: |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
176 ## @example |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
177 ## pkg update |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
178 ## @end example |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
179 ## |
30419
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
180 ## Update all local packages: |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
181 ## @example |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
182 ## pkg update -local |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
183 ## @end example |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
184 ## |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
185 ## Update certain packages, ignore dependencies, max verbosity: |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
186 ## @example |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
187 ## pkg update -verbose -nodeps image signal geometry |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
188 ## @end example |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
189 ## |
30411
0fee9e910d84
doc: Update pkg documentation related to local/global install (bug #59821).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
29878
diff
changeset
|
190 ## @noindent |
30419
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
191 ## Updates for multiple packages are sorted alphabetically and not checked |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
192 ## for dependencies affected by installation order. If dependency order |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
193 ## related @code{pkg update} failure occurs, use @code{pkg update -nodeps} to |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
194 ## ignore dependencies, or @code{pkg install -forge <package_name>} to update |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
195 ## individual packages manually. |
24966
70490bb1f59d
pkg.m: remove update of single package and update docstring
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24965
diff
changeset
|
196 ## |
6032 | 197 ## @item uninstall |
6070 | 198 ## Uninstall named packages. For example, |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
199 ## |
6070 | 200 ## @example |
201 ## pkg uninstall image | |
202 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
203 ## |
6070 | 204 ## @noindent |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
8942
diff
changeset
|
205 ## removes the @code{image} package from the system. If another installed |
6070 | 206 ## package depends on the @code{image} package an error will be issued. |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
10685
diff
changeset
|
207 ## The package can be uninstalled anyway by using the @option{-nodeps} option. |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
208 ## |
6032 | 209 ## @item load |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
8942
diff
changeset
|
210 ## Add named packages to the path. After loading a package it is |
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
8942
diff
changeset
|
211 ## possible to use the functions provided by the package. For example, |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
212 ## |
6070 | 213 ## @example |
214 ## pkg load image | |
215 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
216 ## |
6070 | 217 ## @noindent |
21954
6da01de4dd8a
pkg: drop special usage of 'all' in load, unload, and describe (bug #40674)
Carnë Draug <carandraug@octave.org>
parents:
21634
diff
changeset
|
218 ## adds the @code{image} package to the path. |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
219 ## |
28023
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
220 ## Note: When loading a package, @code{pkg} will automatically try to load |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
221 ## any unloaded dependencies as well, unless the @option{-nodeps} flag has |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
222 ## been specified. For example, |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
223 ## |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
224 ## @example |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
225 ## pkg load signal |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
226 ## @end example |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
227 ## |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
228 ## @noindent |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
229 ## adds the @code{signal} package and also tries to load its dependency: the |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
230 ## @code{control} package. Be aware that the functionality of package(s) |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
231 ## loaded will probably be impacted by use of the @option{-nodeps} flag. Even |
28714
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
232 ## if necessary dependencies are loaded later, the functionality of top-level |
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
233 ## packages can still be affected because the optimal loading order may not |
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
234 ## have been followed. |
28023
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
235 ## |
6203 | 236 ## @item unload |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
237 ## Remove named packages from the path. After unloading a package it is |
28023
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
238 ## no longer possible to use the functions provided by the package. Trying |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
239 ## to unload a package that other loaded packages still depend on will result |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
240 ## in an error; no packages will be unloaded in this case. A package can |
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
241 ## be forcibly removed with the @option{-nodeps} flag, but be aware that the |
28714
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
242 ## functionality of dependent packages will likely be affected. As when |
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
243 ## loading packages, reloading dependencies after having unloaded them with the |
d8dcb36bb904
maint: spellcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28713
diff
changeset
|
244 ## @option{-nodeps} flag may not restore all functionality of the dependent |
28023
915b3630eed0
pkg.m: Don't unload dependency packages when their dependers are loaded (bug #57522).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27923
diff
changeset
|
245 ## packages as the required loading order may be incorrect. |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
246 ## |
6032 | 247 ## @item list |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
248 ## Show the list of currently installed packages. For example, |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
249 ## |
6070 | 250 ## @example |
19187 | 251 ## pkg list |
6070 | 252 ## @end example |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
253 ## |
6070 | 254 ## @noindent |
19187 | 255 ## will produce a short report with the package name, version, and installation |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
256 ## directory for each installed package. Supply a package name to limit |
19187 | 257 ## reporting to a particular package. For example: |
258 ## | |
259 ## @example | |
260 ## pkg list image | |
261 ## @end example | |
262 ## | |
263 ## If a single return argument is requested then @code{pkg} returns a cell | |
264 ## array where each element is a structure with information on a single | |
265 ## package. | |
266 ## | |
267 ## @example | |
268 ## installed_packages = pkg ("list") | |
269 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
270 ## |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
271 ## If two output arguments are requested @code{pkg} splits the list of |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
272 ## installed packages into those which were installed by the current user, |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
273 ## and those which were installed by the system administrator. |
13141
e81ddf9cacd5
maint: untabify and remove trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
12931
diff
changeset
|
274 ## |
6070 | 275 ## @example |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
276 ## [user_packages, system_packages] = pkg ("list") |
6070 | 277 ## @end example |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
278 ## |
25836
07cb3e098c0a
Use "Octave Forge" spelling in all files.
Rik <rik@octave.org>
parents:
25539
diff
changeset
|
279 ## The @qcode{"-forge"} option lists packages available at the Octave Forge |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
280 ## repository. This requires an internet connection and the cURL library. |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17243
diff
changeset
|
281 ## For example: |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
282 ## |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
283 ## @example |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
284 ## oct_forge_pkgs = pkg ("list", "-forge") |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
285 ## @end example |
12561
0ade5992e374
Add documentation for '-forge' option (bug #32464).
Rik <octave@nomad.inbox5.com>
parents:
12167
diff
changeset
|
286 ## |
7497 | 287 ## @item describe |
21954
6da01de4dd8a
pkg: drop special usage of 'all' in load, unload, and describe (bug #40674)
Carnë Draug <carandraug@octave.org>
parents:
21634
diff
changeset
|
288 ## Show a short description of installed packages. With the option |
21546
f7f97d7e9294
doc: Wrap m-file docstrings to 79 characters + newline (80 total).
Rik <rik@octave.org>
parents:
21518
diff
changeset
|
289 ## @qcode{"-verbose"} also list functions provided by the package. For |
f7f97d7e9294
doc: Wrap m-file docstrings to 79 characters + newline (80 total).
Rik <rik@octave.org>
parents:
21518
diff
changeset
|
290 ## example, |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
291 ## |
7497 | 292 ## @example |
21954
6da01de4dd8a
pkg: drop special usage of 'all' in load, unload, and describe (bug #40674)
Carnë Draug <carandraug@octave.org>
parents:
21634
diff
changeset
|
293 ## pkg describe -verbose |
7497 | 294 ## @end example |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
295 ## |
7497 | 296 ## @noindent |
297 ## will describe all installed packages and the functions they provide. | |
21954
6da01de4dd8a
pkg: drop special usage of 'all' in load, unload, and describe (bug #40674)
Carnë Draug <carandraug@octave.org>
parents:
21634
diff
changeset
|
298 ## Display can be limited to a set of packages: |
6da01de4dd8a
pkg: drop special usage of 'all' in load, unload, and describe (bug #40674)
Carnë Draug <carandraug@octave.org>
parents:
21634
diff
changeset
|
299 ## |
6da01de4dd8a
pkg: drop special usage of 'all' in load, unload, and describe (bug #40674)
Carnë Draug <carandraug@octave.org>
parents:
21634
diff
changeset
|
300 ## @example |
27794
45ad2127582b
doc: grammarcheck scripts before 6.1 release.
Rik <rik@octave.org>
parents:
27707
diff
changeset
|
301 ## @group |
26577
ae1542fb58ba
documentation: Avoid some overfull lines in the PDF manual.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26376
diff
changeset
|
302 ## ## describe control and signal packages |
ae1542fb58ba
documentation: Avoid some overfull lines in the PDF manual.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26376
diff
changeset
|
303 ## pkg describe control signal |
27794
45ad2127582b
doc: grammarcheck scripts before 6.1 release.
Rik <rik@octave.org>
parents:
27707
diff
changeset
|
304 ## @end group |
21954
6da01de4dd8a
pkg: drop special usage of 'all' in load, unload, and describe (bug #40674)
Carnë Draug <carandraug@octave.org>
parents:
21634
diff
changeset
|
305 ## @end example |
6da01de4dd8a
pkg: drop special usage of 'all' in load, unload, and describe (bug #40674)
Carnë Draug <carandraug@octave.org>
parents:
21634
diff
changeset
|
306 ## |
7497 | 307 ## If one output is requested a cell of structure containing the |
308 ## description and list of functions of each package is returned as | |
309 ## output rather than printed on screen: | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
310 ## |
7497 | 311 ## @example |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
312 ## desc = pkg ("describe", "secs1d", "image") |
7497 | 313 ## @end example |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
314 ## |
7497 | 315 ## @noindent |
19187 | 316 ## If any of the requested packages is not installed, @code{pkg} returns an |
7497 | 317 ## error, unless a second output is requested: |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
318 ## |
7497 | 319 ## @example |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
320 ## [desc, flag] = pkg ("describe", "secs1d", "image") |
7497 | 321 ## @end example |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
322 ## |
7497 | 323 ## @noindent |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17243
diff
changeset
|
324 ## @var{flag} will take one of the values @qcode{"Not installed"}, |
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17243
diff
changeset
|
325 ## @qcode{"Loaded"}, or |
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17243
diff
changeset
|
326 ## @qcode{"Not loaded"} for each of the named packages. |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
327 ## |
6034 | 328 ## @item prefix |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
8942
diff
changeset
|
329 ## Set the installation prefix directory. For example, |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
330 ## |
6070 | 331 ## @example |
332 ## pkg prefix ~/my_octave_packages | |
333 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
334 ## |
6070 | 335 ## @noindent |
9307
c2923c27c877
Various documentation improvements
Rik <rdrider0-list@yahoo.com>
parents:
9258
diff
changeset
|
336 ## sets the installation prefix to @file{~/my_octave_packages}. |
6070 | 337 ## Packages will be installed in this directory. |
6034 | 338 ## |
6070 | 339 ## It is possible to get the current installation prefix by requesting an |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
340 ## output argument. For example: |
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
341 ## |
6070 | 342 ## @example |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
343 ## pfx = pkg ("prefix") |
6070 | 344 ## @end example |
6925 | 345 ## |
346 ## The location in which to install the architecture dependent files can be | |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
347 ## independently specified with an addition argument. For example: |
6925 | 348 ## |
349 ## @example | |
9153
5247e89688e1
Eliminate most overfull errors when running texi2pdf for generating pdf documentation
Rik <rdrider0-list@yahoo.com>
parents:
9079
diff
changeset
|
350 ## pkg prefix ~/my_octave_packages ~/my_arch_dep_pkgs |
6925 | 351 ## @end example |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
352 ## |
6189 | 353 ## @item local_list |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
354 ## Set the file in which to look for information on locally |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
8942
diff
changeset
|
355 ## installed packages. Locally installed packages are those that are |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
356 ## available only to the current user. For example: |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
357 ## |
6189 | 358 ## @example |
359 ## pkg local_list ~/.octave_packages | |
360 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
361 ## |
6189 | 362 ## It is possible to get the current value of local_list with the following |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
363 ## |
6189 | 364 ## @example |
365 ## pkg local_list | |
366 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
367 ## |
6189 | 368 ## @item global_list |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
369 ## Set the file in which to look for information on globally |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
8942
diff
changeset
|
370 ## installed packages. Globally installed packages are those that are |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
371 ## available to all users. For example: |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
372 ## |
6189 | 373 ## @example |
374 ## pkg global_list /usr/share/octave/octave_packages | |
375 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
376 ## |
6189 | 377 ## It is possible to get the current value of global_list with the following |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
378 ## |
6189 | 379 ## @example |
380 ## pkg global_list | |
381 ## @end example | |
10821
693e22af08ae
Grammarcheck documentation of m-files
Rik <octave@nomad.inbox5.com>
parents:
10793
diff
changeset
|
382 ## |
6675 | 383 ## @item build |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
384 ## Build a binary form of a package or packages. The binary file produced |
6675 | 385 ## will itself be an Octave package that can be installed normally with |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
8942
diff
changeset
|
386 ## @code{pkg}. The form of the command to build a binary package is |
6675 | 387 ## |
388 ## @example | |
389 ## pkg build builddir image-1.0.0.tar.gz @dots{} | |
390 ## @end example | |
391 ## | |
392 ## @noindent | |
9079
4d610aba7347
Cleanup documentation for system.texi, package.texi
Rik <rdrider0-list@yahoo.com>
parents:
9051
diff
changeset
|
393 ## where @code{builddir} is the name of a directory where the temporary |
6675 | 394 ## installation will be produced and the binary packages will be found. |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11547
diff
changeset
|
395 ## The options @option{-verbose} and @option{-nodeps} are respected, while |
12779
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
396 ## all other options are ignored. |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
397 ## |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
398 ## @item rebuild |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
399 ## Rebuild the package database from the installed directories. This can |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
400 ## be used in cases where the package database has been corrupted. |
095fd5c8b7e1
doc: Update docstring for pkg()
Rik <octave@nomad.inbox5.com>
parents:
12778
diff
changeset
|
401 ## |
28064
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
402 ## @item test |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
403 ## Perform the built-in self tests contained in all functions provided by |
28713
28d2511f2af2
maint: grammarcheck documentation ahead of 6.1 release.
Rik <rik@octave.org>
parents:
28666
diff
changeset
|
404 ## the named packages. For example: |
28064
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
405 ## |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
406 ## @example |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
407 ## pkg test image |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
408 ## @end example |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
409 ## |
6032 | 410 ## @end table |
19192
8a8a7bc2a09d
Improve docstrings and mark documentation m-files as tested in miscellaneous/ dir.
Rik <rik@octave.org>
parents:
19187
diff
changeset
|
411 ## @seealso{ver, news} |
11547 | 412 ## @end deftypefn |
5947 | 413 |
6496 | 414 function [local_packages, global_packages] = pkg (varargin) |
19187 | 415 |
28133
baf16e6f498b
pkg.m: Install packages globally if process has elevated rights (bug #44548).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28064
diff
changeset
|
416 ## Installation prefix |
6645 | 417 persistent user_prefix = false; |
16304
c8e1b0213e34
pkg.m: Fix str-to-num warnings (bug #37785)
Rik <rik@octave.org>
parents:
16173
diff
changeset
|
418 persistent prefix = false; |
6925 | 419 persistent archprefix = -1; |
29462
280defaf2023
pkg.m: Install local packages in version dependent path (bug #58299).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
420 persistent local_list = fullfile (user_config_dir (), "octave", ... |
29878
2cc14e275a51
pkg.m: Install local packages in API dependent path (bug #58299).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29580
diff
changeset
|
421 __octave_config_info__ ("api_version"), ... |
29462
280defaf2023
pkg.m: Install local packages in version dependent path (bug #58299).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
422 "octave_packages"); |
280defaf2023
pkg.m: Install local packages in version dependent path (bug #58299).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
423 persistent global_list = fullfile (OCTAVE_HOME (), "share", "octave", ... |
10549 | 424 "octave_packages"); |
14471
d2c095e45196
maint: Remove redundant private function from the package manager.
Carlo de Falco <kingcrimson@tiscali.it>
parents:
14466
diff
changeset
|
425 |
28133
baf16e6f498b
pkg.m: Install packages globally if process has elevated rights (bug #44548).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28064
diff
changeset
|
426 ## If user is superuser (posix) or the process has elevated rights (Windows), |
baf16e6f498b
pkg.m: Install packages globally if process has elevated rights (bug #44548).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28064
diff
changeset
|
427 ## set global_install to true. |
baf16e6f498b
pkg.m: Install packages globally if process has elevated rights (bug #44548).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28064
diff
changeset
|
428 if (ispc () && ! isunix ()) |
baf16e6f498b
pkg.m: Install packages globally if process has elevated rights (bug #44548).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28064
diff
changeset
|
429 global_install = __is_elevated_process__ (); |
baf16e6f498b
pkg.m: Install packages globally if process has elevated rights (bug #44548).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28064
diff
changeset
|
430 else |
baf16e6f498b
pkg.m: Install packages globally if process has elevated rights (bug #44548).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28064
diff
changeset
|
431 global_install = (geteuid () == 0); |
baf16e6f498b
pkg.m: Install packages globally if process has elevated rights (bug #44548).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28064
diff
changeset
|
432 endif |
6683 | 433 |
29579
3a9000d18596
pkg.m: Use default prefixes unless otherwise set previously (bug #60472).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29358
diff
changeset
|
434 if (! user_prefix) |
18448
b26d6be1767a
Move definifion of default package paths to separate function.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
17744
diff
changeset
|
435 [prefix, archprefix] = default_prefix (global_install); |
6645 | 436 prefix = tilde_expand (prefix); |
6925 | 437 archprefix = tilde_expand (archprefix); |
6496 | 438 endif |
439 | |
19187 | 440 mlock (); |
441 | |
442 confirm_recursive_rmdir (false, "local"); | |
443 | |
28942
fc4bb4bd1d5e
maint: Use '##' as lead-in for full-line comments.
Rik <rik@octave.org>
parents:
28877
diff
changeset
|
444 ## valid actions in alphabetical order |
24965
0974a3649c81
pkg.m: alphabetic order of available_actions
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24934
diff
changeset
|
445 available_actions = {"build", "describe", "global_list", "install", ... |
0974a3649c81
pkg.m: alphabetic order of available_actions
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24934
diff
changeset
|
446 "list", "load", "local_list", "prefix", "rebuild", ... |
28064
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
447 "test", "uninstall", "unload", "update"}; |
19187 | 448 |
449 ## Parse input arguments | |
450 if (isempty (varargin) || ! iscellstr (varargin)) | |
6496 | 451 print_usage (); |
452 endif | |
453 files = {}; | |
454 deps = true; | |
455 action = "none"; | |
6614 | 456 verbose = false; |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
457 octave_forge = false; |
19187 | 458 for i = 1:numel (varargin) |
6496 | 459 switch (varargin{i}) |
460 case "-nodeps" | |
10549 | 461 deps = false; |
21624
cf227735d5fd
pkg: remove support for autoload (automatically loading package at start).
Carnë Draug <carandraug@octave.org>
parents:
21546
diff
changeset
|
462 ## TODO completely remove these warnings after some releases. |
6496 | 463 case "-noauto" |
21624
cf227735d5fd
pkg: remove support for autoload (automatically loading package at start).
Carnë Draug <carandraug@octave.org>
parents:
21546
diff
changeset
|
464 warning ("Octave:deprecated-option", |
cf227735d5fd
pkg: remove support for autoload (automatically loading package at start).
Carnë Draug <carandraug@octave.org>
parents:
21546
diff
changeset
|
465 ["pkg: autoload is no longer supported. The -noauto "... |
cf227735d5fd
pkg: remove support for autoload (automatically loading package at start).
Carnë Draug <carandraug@octave.org>
parents:
21546
diff
changeset
|
466 "option is no longer required."]); |
6496 | 467 case "-auto" |
21624
cf227735d5fd
pkg: remove support for autoload (automatically loading package at start).
Carnë Draug <carandraug@octave.org>
parents:
21546
diff
changeset
|
468 warning ("Octave:deprecated-option", |
cf227735d5fd
pkg: remove support for autoload (automatically loading package at start).
Carnë Draug <carandraug@octave.org>
parents:
21546
diff
changeset
|
469 ["pkg: autoload is no longer supported. Add a "... |
cf227735d5fd
pkg: remove support for autoload (automatically loading package at start).
Carnë Draug <carandraug@octave.org>
parents:
21546
diff
changeset
|
470 "'pkg load ...' command to octaverc instead."]); |
6614 | 471 case "-verbose" |
10549 | 472 verbose = true; |
13275
635db52feab4
pkg.m: Display verbose output immediately rather than buffering it.
Rik <octave@nomad.inbox5.com>
parents:
13141
diff
changeset
|
473 ## Send verbose output to pager immediately. Change setting locally. |
635db52feab4
pkg.m: Display verbose output immediately rather than buffering it.
Rik <octave@nomad.inbox5.com>
parents:
13141
diff
changeset
|
474 page_output_immediately (true, "local"); |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
475 case "-forge" |
21434
1da428cbf401
deprecate octave_config_info
John W. Eaton <jwe@octave.org>
parents:
20852
diff
changeset
|
476 if (! __octave_config_info__ ("CURL_LIBS")) |
25841
0d4b88086f36
doc: use "Octave Forge" spelling in a few more instances
Mike Miller <mtmiller@octave.org>
parents:
25836
diff
changeset
|
477 error ("pkg: can't download from Octave Forge without the cURL library"); |
15184
0b29c16a2645
pkg: check cURL library when using -forge
Carnë Draug <carandraug+dev@gmail.com>
parents:
15058
diff
changeset
|
478 endif |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
479 octave_forge = true; |
6645 | 480 case "-local" |
10549 | 481 global_install = false; |
482 if (! user_prefix) | |
18448
b26d6be1767a
Move definifion of default package paths to separate function.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
17744
diff
changeset
|
483 [prefix, archprefix] = default_prefix (global_install); |
10549 | 484 endif |
6645 | 485 case "-global" |
10549 | 486 global_install = true; |
487 if (! user_prefix) | |
18448
b26d6be1767a
Move definifion of default package paths to separate function.
Carlo de Falco <cdf@users.sourceforge.net>
parents:
17744
diff
changeset
|
488 [prefix, archprefix] = default_prefix (global_install); |
10549 | 489 endif |
7497 | 490 case available_actions |
19187 | 491 if (! strcmp (action, "none")) |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
492 error ("pkg: more than one action specified"); |
10549 | 493 endif |
19187 | 494 action = varargin{i}; |
6496 | 495 otherwise |
10549 | 496 files{end+1} = varargin{i}; |
5801 | 497 endswitch |
6496 | 498 endfor |
499 | |
10685
81a43049dee2
support pkg list -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10684
diff
changeset
|
500 if (octave_forge && ! any (strcmp (action, {"install", "list"}))) |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
501 error ("pkg: '-forge' can only be used with install or list"); |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
502 endif |
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
503 |
6496 | 504 ## Take action |
505 switch (action) | |
506 case "list" | |
10685
81a43049dee2
support pkg list -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10684
diff
changeset
|
507 if (octave_forge) |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
508 if (nargout) |
10685
81a43049dee2
support pkg list -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10684
diff
changeset
|
509 local_packages = list_forge_packages (); |
81a43049dee2
support pkg list -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10684
diff
changeset
|
510 else |
81a43049dee2
support pkg list -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10684
diff
changeset
|
511 list_forge_packages (); |
81a43049dee2
support pkg list -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10684
diff
changeset
|
512 endif |
6496 | 513 else |
20480
ad7fe3cb6fd2
pkg: fix regression on output of pkg list (bug #45873)
Carnë Draug <carandraug@octave.org>
parents:
20475
diff
changeset
|
514 if (nargout == 1) |
ad7fe3cb6fd2
pkg: fix regression on output of pkg list (bug #45873)
Carnë Draug <carandraug@octave.org>
parents:
20475
diff
changeset
|
515 local_packages = installed_packages (local_list, global_list, files); |
ad7fe3cb6fd2
pkg: fix regression on output of pkg list (bug #45873)
Carnë Draug <carandraug@octave.org>
parents:
20475
diff
changeset
|
516 elseif (nargout > 1) |
10685
81a43049dee2
support pkg list -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10684
diff
changeset
|
517 [local_packages, global_packages] = installed_packages (local_list, |
19187 | 518 global_list, |
519 files); | |
10685
81a43049dee2
support pkg list -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10684
diff
changeset
|
520 else |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
521 installed_packages (local_list, global_list, files); |
10685
81a43049dee2
support pkg list -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10684
diff
changeset
|
522 endif |
6496 | 523 endif |
524 | |
525 case "install" | |
19187 | 526 if (isempty (files)) |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
527 error ("pkg: install action requires at least one filename"); |
6496 | 528 endif |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
529 |
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
530 local_files = {}; |
25140
ad6dce96cbca
pkg.m: fix undefined variable error in install (bug #53567)
Mike Miller <mtmiller@octave.org>
parents:
25131
diff
changeset
|
531 tmp_dir = tempname (); |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
532 unwind_protect |
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
533 |
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
534 if (octave_forge) |
19833
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
535 [urls, local_files] = cellfun ("get_forge_download", files, |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
536 "uniformoutput", false); |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
537 [files, succ] = cellfun ("urlwrite", urls, local_files, |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
538 "uniformoutput", false); |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
539 succ = [succ{:}]; |
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
540 if (! all (succ)) |
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
541 i = find (! succ, 1); |
27574
c89a6f3eab69
pkg.m: Use uppercase URL in documentation and error messages.
Rik <rik@octave.org>
parents:
27573
diff
changeset
|
542 error ("pkg: could not download file %s from URL %s", |
19833
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
543 local_files{i}, urls{i}); |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
544 endif |
24871
ca43264971ea
pkg: allow URI for external files (https/ftp/etc links) as install targets
Carnë Draug <carandraug@octave.org>
parents:
24534
diff
changeset
|
545 else |
ca43264971ea
pkg: allow URI for external files (https/ftp/etc links) as install targets
Carnë Draug <carandraug@octave.org>
parents:
24534
diff
changeset
|
546 ## If files do not exist, maybe they are not local files. |
ca43264971ea
pkg: allow URI for external files (https/ftp/etc links) as install targets
Carnë Draug <carandraug@octave.org>
parents:
24534
diff
changeset
|
547 ## Try to download them. |
26589
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
548 not_local_files = cellfun (@(x) isempty (glob (x)), files); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
549 if (any (not_local_files)) |
25140
ad6dce96cbca
pkg.m: fix undefined variable error in install (bug #53567)
Mike Miller <mtmiller@octave.org>
parents:
25131
diff
changeset
|
550 [success, msg] = mkdir (tmp_dir); |
24871
ca43264971ea
pkg: allow URI for external files (https/ftp/etc links) as install targets
Carnë Draug <carandraug@octave.org>
parents:
24534
diff
changeset
|
551 if (success != 1) |
ca43264971ea
pkg: allow URI for external files (https/ftp/etc links) as install targets
Carnë Draug <carandraug@octave.org>
parents:
24534
diff
changeset
|
552 error ("pkg: failed to create temporary directory: %s", msg); |
ca43264971ea
pkg: allow URI for external files (https/ftp/etc links) as install targets
Carnë Draug <carandraug@octave.org>
parents:
24534
diff
changeset
|
553 endif |
24872
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
554 |
26589
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
555 for file = files(not_local_files) |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
556 file = file{1}; |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
557 [~, fname, fext] = fileparts (file); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
558 tmp_file = fullfile (tmp_dir, [fname fext]); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
559 local_files{end+1} = tmp_file; |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
560 looks_like_url = regexp (file, '^\w+://'); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
561 if (looks_like_url) |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
562 [~, success, msg] = urlwrite (file, local_files{end}); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
563 if (success != 1) |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
564 error ("pkg: failed downloading '%s': %s", file, msg); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
565 endif |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
566 ## Verify that download is a tarball, |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
567 ## to protect against ISP DNS hijacking. |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
568 ## FIXME: Need a test which does not rely on external OS. |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
569 #{ |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
570 if (isunix ()) |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
571 [ok, file_descr] = ... |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
572 system (sprintf ('file "%s" | cut -d ":" -f 2', ... |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
573 local_files{end})); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
574 if (! ok) |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
575 if (strfind (file_descr, "HTML")) |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
576 error (["pkg: Invalid package file downloaded from " ... |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
577 "%s\n" ... |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
578 "File is HTML, not a tar archive."], ... |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
579 file); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
580 endif |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
581 else |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
582 ## Ignore: maybe something went wrong with the "file" call. |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
583 endif |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
584 endif |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
585 #} |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
586 else |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
587 looks_like_pkg_name = regexp (file, '^[\w-]+$'); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
588 if (looks_like_pkg_name) |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
589 error (["pkg: file not found: %s.\n" ... |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
590 "This looks like an Octave Forge package name." ... |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
591 " Did you mean:\n" ... |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
592 " pkg install -forge %s"], ... |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
593 file, file); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
594 else |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
595 error ("pkg: file not found: %s", file); |
5bfbcbec6826
pkg.m: Clearer error messages when file doesn't exist or -forge switch is forgotten (bug #55515).
Andrew Janke <andrew@apjanke.net>
parents:
26376
diff
changeset
|
596 endif |
25030
62186547b752
pkg.m: remove yes-no question when installing from URI.
Carnë Draug <carandraug@octave.org>
parents:
24934
diff
changeset
|
597 endif |
26856
65c036b78040
pkg.m: Fix regression installing pkgs from URL (bug #55843).
Rik <rik@octave.org>
parents:
26595
diff
changeset
|
598 files{strcmp (files, file)} = local_files{end}; |
24872
a26f8c97df21
warning and yes_or_no for installing using url
Juan Pablo Carbajal <ajuanpi+dev@gmail.com>
parents:
24871
diff
changeset
|
599 |
24871
ca43264971ea
pkg: allow URI for external files (https/ftp/etc links) as install targets
Carnë Draug <carandraug@octave.org>
parents:
24534
diff
changeset
|
600 endfor |
ca43264971ea
pkg: allow URI for external files (https/ftp/etc links) as install targets
Carnë Draug <carandraug@octave.org>
parents:
24534
diff
changeset
|
601 endif |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
602 endif |
21624
cf227735d5fd
pkg: remove support for autoload (automatically loading package at start).
Carnë Draug <carandraug@octave.org>
parents:
21546
diff
changeset
|
603 install (files, deps, prefix, archprefix, verbose, local_list, |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
604 global_list, global_install); |
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
605 |
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
606 unwind_protect_cleanup |
28503
f480103d8333
Fix unlink() calls in package m-files for new syntax (bug #57830)
Rik <rik@octave.org>
parents:
28501
diff
changeset
|
607 [~] = cellfun ("unlink", local_files); |
25131
0cd7076a97c8
pkg.m: Don't leave behind temporary directories if error occurs during install (bug #53567).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
608 if (exist (tmp_dir, "file")) |
28877
cd2178d0e43b
pkg.m,build.m: capture output of rmdir() so that error is not thrown.
Rik <rik@octave.org>
parents:
28715
diff
changeset
|
609 [~] = rmdir (tmp_dir, "s"); |
25131
0cd7076a97c8
pkg.m: Don't leave behind temporary directories if error occurs during install (bug #53567).
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
610 endif |
10684
76aba4305f1f
support pkg install -forge
Jaroslav Hajek <highegg@gmail.com>
parents:
10549
diff
changeset
|
611 end_unwind_protect |
6496 | 612 |
613 case "uninstall" | |
19187 | 614 if (isempty (files)) |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
615 error ("pkg: uninstall action requires at least one package name"); |
6496 | 616 endif |
19187 | 617 uninstall (files, deps, verbose, local_list, global_list, global_install); |
6496 | 618 |
619 case "load" | |
19187 | 620 if (isempty (files)) |
21954
6da01de4dd8a
pkg: drop special usage of 'all' in load, unload, and describe (bug #40674)
Carnë Draug <carandraug@octave.org>
parents:
21634
diff
changeset
|
621 error ("pkg: load action requires at least one package name"); |
6496 | 622 endif |
623 load_packages (files, deps, local_list, global_list); | |
624 | |
625 case "unload" | |
19187 | 626 if (isempty (files)) |
21954
6da01de4dd8a
pkg: drop special usage of 'all' in load, unload, and describe (bug #40674)
Carnë Draug <carandraug@octave.org>
parents:
21634
diff
changeset
|
627 error ("pkg: unload action requires at least one package name"); |
6496 | 628 endif |
629 unload_packages (files, deps, local_list, global_list); | |
630 | |
631 case "prefix" | |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
632 if (isempty (files) && ! nargout) |
21634
96518f623c91
Backed out changeset dcf8922b724b
Mike Miller <mtmiller@octave.org>
parents:
21633
diff
changeset
|
633 printf ("Installation prefix: %s\n", prefix); |
96518f623c91
Backed out changeset dcf8922b724b
Mike Miller <mtmiller@octave.org>
parents:
21633
diff
changeset
|
634 printf ("Architecture dependent prefix: %s\n", archprefix); |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
635 elseif (isempty (files) && nargout) |
10549 | 636 local_packages = prefix; |
637 global_packages = archprefix; | |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
638 elseif (numel (files) >= 1 && ischar (files{1})) |
16173
40a9a4e0d12a
pkg.m: Restore ability to use '~' in specifying prefix directories.
Rik <rik@octave.org>
parents:
15966
diff
changeset
|
639 prefix = tilde_expand (files{1}); |
26100
7a8f895c8f15
pkg.m: Don't create 'prefix' directory until needed (bug #53577).
Rik <rik@octave.org>
parents:
25842
diff
changeset
|
640 local_packages = prefix = make_absolute_filename (prefix); |
10549 | 641 user_prefix = true; |
19187 | 642 if (numel (files) >= 2 && ischar (files{2})) |
26100
7a8f895c8f15
pkg.m: Don't create 'prefix' directory until needed (bug #53577).
Rik <rik@octave.org>
parents:
25842
diff
changeset
|
643 archprefix = make_absolute_filename (tilde_expand (files{2})); |
10549 | 644 endif |
6496 | 645 else |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
646 error ("pkg: prefix action requires a directory input, or an output argument"); |
6496 | 647 endif |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
648 |
6496 | 649 case "local_list" |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
650 if (isempty (files) && ! nargout) |
10549 | 651 disp (local_list); |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
652 elseif (isempty (files) && nargout) |
10549 | 653 local_packages = local_list; |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
654 elseif (numel (files) == 1 && ! nargout && ischar (files{1})) |
28278
3cffb5c059b4
pkg.m: Perform tilde expansion on 'local_list' argument (bug #58332).
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
28133
diff
changeset
|
655 local_list = tilde_expand (files{1}); |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
656 if (! exist (local_list, "file")) |
15000
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
657 try |
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
658 ## Force file to be created |
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
659 fclose (fopen (local_list, "wt")); |
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
660 catch |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
661 error ("pkg: cannot create file %s", local_list); |
15000
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
662 end_try_catch |
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
663 endif |
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
664 local_list = canonicalize_file_name (local_list); |
6496 | 665 else |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
666 error ("pkg: specify a local_list file, or request an output argument"); |
6496 | 667 endif |
668 | |
669 case "global_list" | |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
670 if (isempty (files) && ! nargout) |
19187 | 671 disp (global_list); |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
672 elseif (isempty (files) && nargout) |
10549 | 673 local_packages = global_list; |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
674 elseif (numel (files) == 1 && ! nargout && ischar (files{1})) |
15000
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
675 global_list = files{1}; |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
676 if (! exist (global_list, "file")) |
15000
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
677 try |
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
678 ## Force file to be created |
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
679 fclose (fopen (files{1}, "wt")); |
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
680 catch |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
681 error ("pkg: cannot create file %s", global_list); |
15000
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
682 end_try_catch |
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
683 endif |
4c8ddf57fcda
remove redundant private function absolute_pathname
Carlo de Falco <cdf@users.sourceforge.net>
parents:
14860
diff
changeset
|
684 global_list = canonicalize_file_name (global_list); |
6496 | 685 else |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
686 error ("pkg: specify a global_list file, or request an output argument"); |
6496 | 687 endif |
6645 | 688 |
689 case "rebuild" | |
690 if (global_install) | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11547
diff
changeset
|
691 global_packages = rebuild (prefix, archprefix, global_list, files, |
21624
cf227735d5fd
pkg: remove support for autoload (automatically loading package at start).
Carnë Draug <carandraug@octave.org>
parents:
21546
diff
changeset
|
692 verbose); |
10549 | 693 global_packages = save_order (global_packages); |
27573
0cedd1e23c1f
Adapt path styles for pkg.m on Windows (bug #57083)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
26856
diff
changeset
|
694 if (ispc) |
0cedd1e23c1f
Adapt path styles for pkg.m on Windows (bug #57083)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
26856
diff
changeset
|
695 ## On Windows ensure LFN paths are saved rather than 8.3 style paths |
0cedd1e23c1f
Adapt path styles for pkg.m on Windows (bug #57083)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
26856
diff
changeset
|
696 global_packages = standardize_paths (global_packages); |
0cedd1e23c1f
Adapt path styles for pkg.m on Windows (bug #57083)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
26856
diff
changeset
|
697 endif |
27707
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
27574
diff
changeset
|
698 global_packages = make_rel_paths (global_packages); |
10549 | 699 save (global_list, "global_packages"); |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
700 if (nargout) |
10549 | 701 local_packages = global_packages; |
702 endif | |
6645 | 703 else |
19187 | 704 local_packages = rebuild (prefix, archprefix, local_list, files, |
21624
cf227735d5fd
pkg: remove support for autoload (automatically loading package at start).
Carnë Draug <carandraug@octave.org>
parents:
21546
diff
changeset
|
705 verbose); |
10549 | 706 local_packages = save_order (local_packages); |
27573
0cedd1e23c1f
Adapt path styles for pkg.m on Windows (bug #57083)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
26856
diff
changeset
|
707 if (ispc) |
0cedd1e23c1f
Adapt path styles for pkg.m on Windows (bug #57083)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
26856
diff
changeset
|
708 local_packages = standardize_paths (local_packages); |
0cedd1e23c1f
Adapt path styles for pkg.m on Windows (bug #57083)
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
26856
diff
changeset
|
709 endif |
10549 | 710 save (local_list, "local_packages"); |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
711 if (! nargout) |
10549 | 712 clear ("local_packages"); |
713 endif | |
6645 | 714 endif |
715 | |
6675 | 716 case "build" |
19187 | 717 if (numel (files) < 2) |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
718 error ("pkg: build action requires build directory and at least one filename"); |
6675 | 719 endif |
21518
2ee20a290d61
pkg build: complete rewrite of the logic behind binary packages.
Carnë Draug <carandraug@octave.org>
parents:
21434
diff
changeset
|
720 build (files{1}, files(2:end), verbose); |
6675 | 721 |
7497 | 722 case "describe" |
19187 | 723 ## FIXME: name of the output variables is inconsistent with their content |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
724 if (nargout) |
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
725 [local_packages, global_packages] = describe (files, verbose, |
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
726 local_list, global_list); |
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
727 else |
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
728 describe (files, verbose, local_list, global_list); |
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
729 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11547
diff
changeset
|
730 |
12778
0ca5672d5f1a
Implement pkg update command
Lukas Reichlin <lukas.reichlin@gmail.com>
parents:
12710
diff
changeset
|
731 case "update" |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
732 installed_pkgs_lst = installed_packages (local_list, global_list); |
25031
f2f813a55eec
pkg: remove update of listed packages (actually do 70490bb1f59d)
Carnë Draug <carandraug@octave.org>
parents:
24966
diff
changeset
|
733 |
30419
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
734 ## If -global or -local, limit updates to global or local list pkgs |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
735 globalflag = any (strcmp (varargin, "-global")); |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
736 localflag = any (strcmp (varargin, "-local")); |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
737 if (globalflag || localflag) |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
738 if (globalflag && localflag) |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
739 error ("pkg: cannot specify both global and local options.") |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
740 elseif (globalflag) |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
741 [~, installed_pkgs_lst] = installed_packages (local_list, global_list); |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
742 else |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
743 [installed_pkgs_lst, ~] = installed_packages (local_list, global_list); |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
744 endif |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
745 else |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
746 installed_pkgs_lst = installed_packages (local_list, global_list); |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
747 endif |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
748 |
26207
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
749 ## Explicit list of packages to update, rather than all packages |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
750 if (numel (files) > 0) |
26207
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
751 update_lst = {}; |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
752 installed_names = cellfun (@(idx) idx.name, installed_pkgs_lst, |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
753 "UniformOutput", false); |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
754 for i = 1:numel (files) |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
755 idx = find (strcmp (files{i}, installed_names), 1); |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
756 if (isempty (idx)) |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
757 warning ("pkg: package %s is not installed - skipping update", |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
758 files{i}); |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
759 else |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
760 update_lst = [ update_lst, installed_pkgs_lst(idx) ]; |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
761 endif |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
762 endfor |
b964092ad9f8
pkg.m: Allow updating a list of supplied packages, instead of all (bug #48151).
Nicholas R. Jankowski <jankowskin@asme.org>
parents:
26100
diff
changeset
|
763 installed_pkgs_lst = update_lst; |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
764 endif |
25031
f2f813a55eec
pkg: remove update of listed packages (actually do 70490bb1f59d)
Carnë Draug <carandraug@octave.org>
parents:
24966
diff
changeset
|
765 |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
766 for i = 1:numel (installed_pkgs_lst) |
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
767 installed_pkg_name = installed_pkgs_lst{i}.name; |
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
768 installed_pkg_version = installed_pkgs_lst{i}.version; |
21998
cf5db742f552
pkg: warn and continue updating on non-forge packages (bug #48294)
Mike Miller <mtmiller@octave.org>
parents:
21954
diff
changeset
|
769 try |
cf5db742f552
pkg: warn and continue updating on non-forge packages (bug #48294)
Mike Miller <mtmiller@octave.org>
parents:
21954
diff
changeset
|
770 forge_pkg_version = get_forge_pkg (installed_pkg_name); |
cf5db742f552
pkg: warn and continue updating on non-forge packages (bug #48294)
Mike Miller <mtmiller@octave.org>
parents:
21954
diff
changeset
|
771 catch |
25841
0d4b88086f36
doc: use "Octave Forge" spelling in a few more instances
Mike Miller <mtmiller@octave.org>
parents:
25836
diff
changeset
|
772 warning ("pkg: package %s not found on Octave Forge - skipping update\n", |
21998
cf5db742f552
pkg: warn and continue updating on non-forge packages (bug #48294)
Mike Miller <mtmiller@octave.org>
parents:
21954
diff
changeset
|
773 installed_pkg_name); |
cf5db742f552
pkg: warn and continue updating on non-forge packages (bug #48294)
Mike Miller <mtmiller@octave.org>
parents:
21954
diff
changeset
|
774 forge_pkg_version = "0"; |
cf5db742f552
pkg: warn and continue updating on non-forge packages (bug #48294)
Mike Miller <mtmiller@octave.org>
parents:
21954
diff
changeset
|
775 end_try_catch |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
776 if (compare_versions (forge_pkg_version, installed_pkg_version, ">")) |
30419
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
777 options_to_pass = varargin (strncmp (varargin, "-", 1)); |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
778 options_to_pass(end+1) = "-forge"; |
420608d1d370
Enable pkg update to accept options for install (bug #56128, #60573, #60574)
Nicholas R. Jankowski <jankowski.nicholas@gmail.com>
parents:
30411
diff
changeset
|
779 feval (@pkg, "install", options_to_pass{:}, installed_pkg_name); |
18556
4daf647c86c3
Implement pkg update pkgnametoupdate (Bug #41732)
John Donoghue <john.donoghue@ieee.org>
parents:
17744
diff
changeset
|
780 endif |
20475
7fa1970a655d
pkg.m: drop check of nargout value, the interpreter already does that.
Carnë Draug <carandraug@octave.org>
parents:
19833
diff
changeset
|
781 endfor |
12778
0ca5672d5f1a
Implement pkg update command
Lukas Reichlin <lukas.reichlin@gmail.com>
parents:
12710
diff
changeset
|
782 |
28064
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
783 case "test" |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
784 if (isempty (files)) |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
785 error ("pkg: test action requires at least one package name"); |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
786 endif |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
787 ## Make sure the requested packages are loaded |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
788 orig_path = path (); |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
789 load_packages (files, deps, local_list, global_list); |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
790 ## Test packages one by one |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
791 installed_pkgs_lst = installed_packages (local_list, global_list, files); |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
792 unwind_protect |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
793 for i = 1:numel (installed_pkgs_lst) |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
794 printf ("Testing functions in package '%s':\n", files{i}); |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
795 installed_pkgs_dirs = {installed_pkgs_lst{i}.dir, ... |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
796 installed_pkgs_lst{i}.archprefix}; |
28666
6b964cf58ed4
Fix typos in commit f4426602b5f8.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28664
diff
changeset
|
797 installed_pkgs_dirs = ... |
6b964cf58ed4
Fix typos in commit f4426602b5f8.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28664
diff
changeset
|
798 installed_pkgs_dirs (! cellfun (@isempty, installed_pkgs_dirs)); |
28064
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
799 ## For local installs installed_pkgs_dirs contains the same subdirs |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
800 installed_pkgs_dirs = unique (installed_pkgs_dirs); |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
801 if (! isempty (installed_pkgs_dirs)) |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
802 ## FIXME invoke another test routine once that is available. |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
803 ## Until then __run_test_suite__.m will do the job fine enough |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
804 __run_test_suite__ ({installed_pkgs_dirs{:}}, {}); |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
805 endif |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
806 endfor |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
807 unwind_protect_cleanup |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
808 ## Restore load path back to its original value before loading packages |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
809 path (orig_path); |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
810 end_unwind_protect |
fbed279b7074
pkg: add "test" command to test all functions in a package (bug #41215)
Mike Miller <mtmiller@octave.org>
parents:
28023
diff
changeset
|
811 |
6496 | 812 otherwise |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20708
diff
changeset
|
813 error ("pkg: invalid action. See 'help pkg' for available actions"); |
6496 | 814 endswitch |
19187 | 815 |
6496 | 816 endfunction |