changeset 10728:e08c9a29b4e1 octave-forge

mechanics: improving PKG_* scripts
author jpicarbajal
date Sat, 25 Aug 2012 08:27:39 +0000
parents f3f41bef14b2
children e890606bd234
files main/mechanics/PKG_ADD main/mechanics/PKG_DEL
diffstat 2 files changed, 85 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/main/mechanics/PKG_ADD	Sat Aug 25 06:15:01 2012 +0000
+++ b/main/mechanics/PKG_ADD	Sat Aug 25 08:27:39 2012 +0000
@@ -1,6 +1,50 @@
 %1
 dirlist = {"molecularDynamics", "ocframe", "core"};
 dirname = fileparts (canonicalize_file_name (mfilename ("fullpath")));
+pp = strsplit (dirname,filesep (), true);
+arch = cstrcat (octave_config_info ("canonical_host_type"),
+                              "-", octave_config_info ("api_version"));
+
+%% Get the correct path
+% Search installed packages
+[local_packages, global_packages] = pkg("list");
+installed_pkgs_lst = {local_packages{:}, global_packages{:}};
+pkg_data = installed_pkgs_lst (cellfun(@(x) ismember (x.name, {"mechanics"}), ...
+                                             installed_pkgs_lst, "unif", true));
+
+if isempty(pkg_data)
+  % The package is not installed yet
+  [pkg_folder dep_folder] = pkg ("prefix");
+  pkg_folder = [pkg_folder strcat(filesep(),{pp{end-1:end}}){:} ];
+  if strcmp (arch , pp{end})
+  %% If we are in Architecture dependent folder add from outside
+    pkg_folder = strsplit (pkg_folder,filesep (), true);
+    pkg_folder = [strcat(filesep(),{pkg_folder{1:end-1}}){:}];
+  end
+else
+  pkg_folder = pkg_data{1}.dir;
+end
+
+if (! exist (fullfile (dirname, "inst"), "dir"))
+%% Installing
+  for ii=1:length (dirlist)
+    addpath ( [ pkg_folder filesep() dirlist{ii}],"-end")
+  endfor
+
+else
+%% Testing
+  warning("mechanics:Devel","Adding path for testing.");
+  for ii=1:length(dirlist)
+    addpath ([ dirname "/inst/" dirlist{ii}])
+  endfor
+endif
+
+warning('off', 'Octave:fopen-file-in-path');
+clear dirlist dirname pp arch pkg_folder
+clear global_packages ii installed_pkgs_lst local_packages pkg_data
+
+%{
+dirname = fileparts (canonicalize_file_name (mfilename ("fullpath")));
 
 %% If we are in Architecture dependent folder add from outside
 arch = cstrcat (octave_config_info ("canonical_host_type"),
@@ -23,3 +67,4 @@
 
 warning('off', 'Octave:fopen-file-in-path');
 clear dirlist dirname pp
+%}
--- a/main/mechanics/PKG_DEL	Sat Aug 25 06:15:01 2012 +0000
+++ b/main/mechanics/PKG_DEL	Sat Aug 25 08:27:39 2012 +0000
@@ -1,6 +1,45 @@
 %1
 dirlist = {"molecularDynamics", "ocframe", "core"};
 dirname = fileparts (canonicalize_file_name (mfilename ("fullpath")));
+pp = strsplit (dirname,filesep (), true);
+arch = cstrcat (octave_config_info ("canonical_host_type"),
+                              "-", octave_config_info ("api_version"));
+%% Get the correct path
+% Search installed packages
+[local_packages, global_packages] = pkg("list");
+installed_pkgs_lst = {local_packages{:}, global_packages{:}};
+pkg_data = installed_pkgs_lst (cellfun(@(x) ismember (x.name, {"mechanics"}), ...
+                                             installed_pkgs_lst, "unif", true));
+if isempty(pkg_data)
+  % The package is not installed yet
+  [pkg_folder dep_folder] = pkg ("prefix");
+  pkg_folder = [pkg_folder strcat(filesep(),{pp{end-1:end}}){:} ];
+  if strcmp (arch , pp{end})
+  %% If we are in Architecture dependent folder add from outside
+    pkg_folder = strsplit (pkg_folder,filesep (), true);
+    pkg_folder = [strcat(filesep(),{pkg_folder{1:end-1}}){:}];
+  end
+else
+  pkg_folder = pkg_data{1}.dir;
+end
+
+if (! exist (fullfile (dirname, "inst"), "dir"))
+## Run this if the package is installed
+  for ii=1:length (dirlist)
+    rmpath ( [ pkg_folder filesep() dirlist{ii}])
+  endfor
+else
+  warning("mechanics:Devel","Removing path for testing.");
+  for ii=1:length(dirlist)
+    rmpath ([ dirname "/inst/" dirlist{ii}])
+  endfor
+endif
+
+clear dirlist dirname pp arch pkg_folder
+
+%{
+dirlist = {"molecularDynamics", "ocframe", "core"};
+dirname = fileparts (canonicalize_file_name (mfilename ("fullpath")));
 
 %% If we are not in Architecture dependent folder
 arch = cstrcat (octave_config_info ("canonical_host_type"),
@@ -23,3 +62,4 @@
 endif
 
 clear dirlist dirname pp
+%}