From: <jpi...@us...> - 2012-08-25 08:27:46
|
Revision: 10914 http://octave.svn.sourceforge.net/octave/?rev=10914&view=rev Author: jpicarbajal Date: 2012-08-25 08:27:39 +0000 (Sat, 25 Aug 2012) Log Message: ----------- mechanics: improving PKG_* scripts Modified Paths: -------------- trunk/octave-forge/main/mechanics/PKG_ADD trunk/octave-forge/main/mechanics/PKG_DEL Modified: trunk/octave-forge/main/mechanics/PKG_ADD =================================================================== --- trunk/octave-forge/main/mechanics/PKG_ADD 2012-08-25 06:15:01 UTC (rev 10913) +++ trunk/octave-forge/main/mechanics/PKG_ADD 2012-08-25 08:27:39 UTC (rev 10914) @@ -1,7 +1,51 @@ %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"), "-", octave_config_info ("api_version")); @@ -23,3 +67,4 @@ warning('off', 'Octave:fopen-file-in-path'); clear dirlist dirname pp +%} Modified: trunk/octave-forge/main/mechanics/PKG_DEL =================================================================== --- trunk/octave-forge/main/mechanics/PKG_DEL 2012-08-25 06:15:01 UTC (rev 10913) +++ trunk/octave-forge/main/mechanics/PKG_DEL 2012-08-25 08:27:39 UTC (rev 10914) @@ -1,7 +1,46 @@ %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"), "-", octave_config_info ("api_version")); @@ -23,3 +62,4 @@ endif clear dirlist dirname pp +%} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |