Mercurial > octave
annotate scripts/pkg/private/expand_rel_paths.m @ 27707:377f069841c1
Make packages installation dirs in global octave_packages file relative
to OCTAVE_HOME (bug #51632).
* make_rel_paths.m, expand_rel_paths.m: New files that replace OCTAVE_HOME part
of packages installation path with __OH__, or vice versa.
* pkg.m, install.m, uninstall.m: Call make_rel_paths.m before saving
octave_packages file.
* installed_packages.m: Add call to expand_rel_paths.m and standardize_paths.m.
* module.mk: Add expand_rel_path.m and make_rel_path.m.
author | Philip Nienhuis <prnienhuis@users.sf.net> |
---|---|
date | Sat, 16 Nov 2019 23:32:42 +0100 |
parents | |
children | b442ec6dda5c |
rev | line source |
---|---|
27707
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
1 ## Copyright (C) 2019 Philip Nienhuis |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
2 ## |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
3 ## This program is free software: you can redistribute it and/or modify |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
4 ## it under the terms of the GNU General Public License as published by |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
5 ## the Free Software Foundation, either version 3 of the License, or |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
6 ## (at your option) any later version. |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
7 ## |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
8 ## This program is distributed in the hope that it will be useful, |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
9 ## but WITHOUT ANY WARRANTY; without even the implied warranty of |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
10 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
11 ## GNU General Public License for more details. |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
12 ## |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
13 ## You should have received a copy of the GNU General Public License |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
14 ## along with this program. If not, see <https://www.gnu.org/licenses/>. |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
15 |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
16 ## -*- texinfo -*- |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
17 ## @deftypefn {} {@var{pkg_list} =} expand_rel_paths (@var{pkg_list}) |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
18 ## Internal undocumented function. |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
19 ## @end deftypefn |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
20 |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
21 ## Author: Philip Nienhuis <prnienhuis@users.sf.net> |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
22 ## Created: 2019-10-28 |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
23 |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
24 function pkg_list = expand_rel_paths (pkg_list) |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
25 |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
26 ## Prepend location of OCTAVE_HOME to install directories |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
27 loc = OCTAVE_HOME; |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
28 for i = 1:numel (pkg_list) |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
29 ## Be sure to only prepend OCTAVE_HOME to pertinent package paths |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
30 if (strncmpi (pkg_list{i}.dir, "__OH__", 6)) |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
31 pkg_list{i}.dir = [ loc pkg_list{i}.dir(7:end) ]; |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
32 pkg_list{i}.archprefix = [ loc pkg_list{i}.archprefix(7:end) ]; |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
33 endif |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
34 endfor |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
35 |
377f069841c1
Make packages installation dirs in global octave_packages file relative
Philip Nienhuis <prnienhuis@users.sf.net>
parents:
diff
changeset
|
36 endfunction |