ATOMS: cosmetic
[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 // End user function
11
12 // get the list of repositories
13
14 function repositories = atomsRepositoryList(section)
15         
16         // Load Atoms Internals lib if it's not already loaded
17         // =========================================================================
18         if ~ exists("atomsinternalslib") then
19                 load("SCI/modules/atoms/macros/atoms_internals/lib");
20         end
21         
22         rhs           = argn(2);
23         repositories  = [];
24         
25         // Check number of input arguments
26         // =========================================================================
27         
28         if rhs > 1 then
29                 error(msprintf(gettext("%s: Wrong number of input argument: %d to %d expected.\n"),"atomsRepositoryList",0,1));
30         end
31         
32         // Check input argument type (if any)
33         // =========================================================================
34         
35         if (rhs==1) & (type(section) <> 10) then
36                 error(msprintf(gettext("%s: Wrong type for input argument #%d: Single string expected.\n"),"atomsRepositoryList",1));
37         end
38         
39         // Check input argument dimension (if any)
40         // =========================================================================
41         
42         if (rhs==1) & (size(section,"*")<>1) then
43                 error(msprintf(gettext("%s: Wrong size for input argument #%d: Single string expected.\n"),"atomsRepositoryList",1));
44         end
45         
46         // Check input argument values (if any)
47         // =========================================================================
48         
49         if (rhs==1) & (and(section<>["all","user","allusers","official"])) then
50                 error(msprintf(gettext("%s: Wrong value for input argument #%d: ''all'',''user'',''allusers'' or ''official'' expected.\n"),"atomsRepositoryList",1));
51         end
52         
53         // Default value of section
54         // =========================================================================
55         
56         if rhs==0 then
57                 section = "all";
58         end
59         
60         // Define the needed paths
61         // =========================================================================
62         
63         official_repositories = pathconvert(SCI+"/modules/atoms/etc/repositories",%F);
64         allusers_repositories = atomsPath("system","allusers") + "repositories";
65         user_repositories     = atomsPath("system","user")     + "repositories";
66         
67         // official repositories
68         // =========================================================================
69         
70         if or(section == ["all";"official"]) then
71                 if fileinfo(official_repositories) <> [] then
72                         url_list = mgetl(official_repositories);
73                         for i=1:size(url_list,"*")
74                                 repositories = [ repositories ; url_list(i)  "official" ];
75                         end
76                 end
77         end
78         
79         // All users repositories
80         // =========================================================================
81         
82         if or(section == ["all";"allusers"]) then
83                 if fileinfo(allusers_repositories) <> [] then
84                         url_list = mgetl(allusers_repositories);
85                         for i=1:size(url_list,"*")
86                                 repositories = [ repositories ; url_list(i)  "allusers" ];
87                         end
88                 end
89         end
90         
91         // User repositories
92         // =========================================================================
93         
94         if or(section == ["all";"user"]) then
95                 if fileinfo(user_repositories) <> [] then
96                         url_list = mgetl(user_repositories);
97                         for i=1:size(url_list,"*")
98                                 repositories = [ repositories ; url_list(i)  "user" ];
99                         end
100                 end
101         end
102         
103 endfunction