ATOMS: cosmetic
[scilab.git] / scilab / modules / atoms / macros / atoms_internals / atomsGetInstalledPath.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2009 - DIGITEO - Pierre MARECHAL <pierre.marechal@scilab.org>
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9
10 // Internal function
11
12 // Add an URL to the list of repositories, and returns
13
14 function res = atomsGetInstalledPath(packages,section)
15         
16         rhs           = argn(2);
17         res           = [];
18         installed     = []; // Column vector that contain user repositories
19         
20         // Check number of input arguments
21         // =========================================================================
22         
23         if rhs < 1 | rhs > 2 then
24                 error(msprintf(gettext("%s: Wrong number of input argument: %d to %d expected.\n"),"atomsGetInstalledPath",1,2));
25         end
26         
27         // Check input parameters type
28         // =========================================================================
29         
30         if type(packages) <> 10 then
31                 error(msprintf(gettext("%s: Wrong type for input argument #%d: String array expected.\n"),"atomsGetInstalledPath",1));
32         end
33         
34         if size(packages(1,:),"*") <> 2 then
35                 error(msprintf(gettext("%s: Wrong size for input argument #%d: mx2 string matrix expected.\n"),"atomsGetInstalledPath",1));
36         end
37         
38         packages = stripblanks(packages);
39         
40         // Allusers/user management
41         // =========================================================================
42         
43         if rhs < 2 then
44                 section = "all";
45         
46         else
47                 
48                 // Process the 2nd input argument : section
49                 // Allusers can be equal to "user" or "allusers"
50                 
51                 if type(section) <> 10 then
52                         error(msprintf(gettext("%s: Wrong type for input argument #%d: A boolean or a single string expected.\n"),"atomsGetInstalledPath",2));
53                 end
54                 
55                 if (type(section) == 10) & and(section<>["user","allusers","all"]) then
56                         error(msprintf(gettext("%s: Wrong value for input argument #%d: ''user'' or ''allusers'' or ''all'' expected.\n"),"atomsGetInstalledPath",2));
57                 end
58                 
59         end
60         
61         // Get the list of installed packages
62         // =========================================================================
63         installedpackages = atomsGetInstalled(section);
64         
65         // Loop on name
66         // =========================================================================
67         
68         for i=1:size(packages(:,1),"*")
69                 
70                 // Filter on names
71                 this_packages = installedpackages( find(installedpackages(:,1) == packages(i,1))     ,:);
72                 
73                 if this_packages == [] then
74                         res(i) = "";
75                         continue;
76                 end
77                 
78                 // Filter on versions
79                 this_packages = this_packages( find(this_packages(:,2) == packages(i,2)) ,:);
80                 
81                 if this_packages == [] then
82                         res(i) = "";
83                         continue;
84                 end
85                 
86                 res(i) = this_packages(1,4);
87         end
88         
89 endfunction