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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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