ATOMS: permit user to get the list of modules present in the autoload list
[scilab.git] / scilab / modules / atoms / macros / atomsAutoloadList.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 // get the list of repositories
11
12 function modules = atomsAutoloadList(level)
13         
14         // Load Atoms Internals lib if it's not already loaded
15         // =========================================================================
16         if ~ exists("atomsinternalslib") then
17                 load("SCI/modules/atoms/macros/atoms_internals/lib");
18         end
19         
20         rhs      = argn(2);
21         modules  = [];
22         
23         // Check number of input arguments
24         // =========================================================================
25         
26         if rhs > 1 then
27                 error(msprintf(gettext("%s: Wrong number of input argument: %d to %d expected.\n"),"atomsAutoloadList",0,1));
28         end
29         
30         // Check input argument type (if any)
31         // =========================================================================
32         
33         if (rhs==1) & (type(level) <> 10) then
34                 error(msprintf(gettext("%s: Wrong type for input argument #%d: Single string expected.\n"),"atomsAutoloadList",1));
35         end
36         
37         // Check input argument dimension (if any)
38         // =========================================================================
39         
40         if (rhs==1) & (size(level,"*")<>1) then
41                 error(msprintf(gettext("%s: Wrong size for input argument #%d: Single string expected.\n"),"atomsAutoloadList",1));
42         end
43         
44         // Check input argument values (if any)
45         // =========================================================================
46         
47         if (rhs==1) & (and(level<>["user","allusers"])) then
48                 error(msprintf(gettext("%s: Wrong value for input argument #%d: ''user'' or ''allusers'' expected.\n"),"atomsAutoloadList",1));
49         end
50         
51         // Define the needed paths
52         // =========================================================================
53         
54         allusers_autoload = pathconvert(SCI+"/.atoms/autoloaded",%F);
55         user_autoload     = pathconvert(SCIHOME+"/atoms/autoloaded",%F);
56         
57         // All users autoload
58         // =========================================================================
59         
60         if (rhs == 0) | ((rhs == 1) & (level == "allusers")) then
61                 if fileinfo(allusers_autoload) <> [] then
62                         module_list = mgetl(allusers_autoload);
63                         for i=1:size(module_list,"*")
64                                 modules = [ modules ; module_list(i)  "allusers" ];
65                         end
66                 end
67         end
68         
69         // User repositories
70         // =========================================================================
71         
72         if (rhs == 0) | ((rhs == 1) & (level == "user")) then
73                 if fileinfo(user_autoload) <> [] then
74                         module_list = mgetl(user_autoload);
75                         for i=1:size(module_list,"*")
76                                 modules = [ modules ; module_list(i)  "user" ];
77                         end
78                 end
79         end
80         
81 endfunction