- installed packages and dependencies are now saved into binary files
[scilab.git] / scilab / modules / atoms / macros / atomsSearch.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 // End user function
11
12 // Search
13
14 function packages_disp = atomsSearch( search , fields )
15         
16         rhs = argn(2);
17         
18         // Check number of input arguments
19         // =========================================================================
20         
21         if rhs < 1 | rhs > 2 then
22                 error(msprintf(gettext("%s: Wrong number of input argument: %d to %d expected.\n"),"atomsSearch",1,2));
23         end
24         
25         // Check input parameters type
26         // =========================================================================
27         
28         if type(search) <> 10 then
29                 error(msprintf(gettext("%s: Wrong type for input argument #%d: A single string expected.\n"),"atomsSearch",1));
30         end
31         
32         if (rhs>1) & (type(fields)<>10)  then
33                 error(msprintf(gettext("%s: Wrong type for input argument #%d: A single string expected.\n"),"atomsSearch",2));
34         end
35         
36         // Check input parameters dimensions
37         // =========================================================================
38         
39         if size(search,"*") <> 1 then
40                 error(msprintf(gettext("%s: Wrong size for input argument #%d: A single string expected.\n"),"atomsSearch",1));
41         end
42         
43         // Don't take into account the character cast
44         // =========================================================================
45         search = convstr(search,"l");
46         
47         // Get the list of available toolboxes
48         // =========================================================================
49         
50         packages_struct    = atomsGetTOOLBOXES();
51         
52         packages_list      = getfield(1,packages_struct);
53         packages_list(1:2) = [];
54         
55         packages_disp      = [];
56         
57         // Loop on package list
58         // =========================================================================
59         
60         for i=1:size(packages_list,"*")
61                 
62                 this_package_name = packages_list(i);
63                 
64                 // Get the list of versions compatibles with this version of Scilab
65                 this_package_versions = atomsCompatibleVersions(packages_list(i));
66                 
67                 if isempty(this_package_versions) then
68                         continue;
69                 end
70                 
71                 // Use the Most Recent Version
72                 this_package_version = this_package_versions(1);
73                 
74                 // Get the details of this toolbox
75                 this_package_details = atomsToolboxDetails(this_package_name,this_package_version);
76                 this_package_summary = this_package_details("Summary");
77                 
78                 if grep( convstr(this_package_name,"l") , search ) <> [] then
79                         packages_disp = [ packages_disp ; this_package_name this_package_summary ];
80                 elseif grep( convstr(this_package_summary,"l") , search ) <> [] then
81                         packages_disp = [ packages_disp ; this_package_name this_package_summary ];
82                 end
83                 
84         end
85         
86 endfunction