Mercurial > forge
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 +%}