83a97a9e0d13134fa9ac889165a549147de320c8
[scilab.git] / scilab / modules / atoms / macros / atomsRepositoryList.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 repositories = atomsRepositoryList(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         repositories  = [];
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"),"atomsRepositoryList",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"),"atomsRepositoryList",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"),"atomsRepositoryList",1));
42         end
43         
44         // Check input argument values (if any)
45         // =========================================================================
46         
47         if (rhs==1) & (and(level<>["user","allusers","official"])) then
48                 error(msprintf(gettext("%s: Wrong value for input argument #%d: ''user'',''allusers'' or ''official'' expected.\n"),"atomsRepositoryList",1));
49         end
50         
51         // Define the needed paths
52         // =========================================================================
53         
54         official_repositories = pathconvert(SCI+"/modules/atoms/etc/repositories",%F);
55         allusers_repositories = pathconvert(SCI+"/.atoms/repositories",%F);
56         user_repositories     = pathconvert(SCIHOME+"/atoms/repositories",%F);
57         
58         // official repositories
59         // =========================================================================
60         
61         if (rhs == 0) | ((rhs == 1) & (level == "official")) then
62                 if fileinfo(official_repositories) <> [] then
63                         url_list = mgetl(official_repositories);
64                         for i=1:size(url_list,"*")
65                                 repositories = [ repositories ; url_list(i)  "official" ];
66                         end
67                 end
68         end
69         
70         // All users repositories
71         // =========================================================================
72         
73         if (rhs == 0) | ((rhs == 1) & (level == "allusers")) then
74                 if fileinfo(allusers_repositories) <> [] then
75                         url_list = mgetl(allusers_repositories);
76                         for i=1:size(url_list,"*")
77                                 repositories = [ repositories ; url_list(i)  "allusers" ];
78                         end
79                 end
80         end
81         
82         // User repositories
83         // =========================================================================
84         
85         if (rhs == 0) | ((rhs == 1) & (level == "user")) then
86                 if fileinfo(user_repositories) <> [] then
87                         url_list = mgetl(user_repositories);
88                         for i=1:size(url_list,"*")
89                                 repositories = [ repositories ; url_list(i)  "user" ];
90                         end
91                 end
92         end
93         
94 endfunction