- installed packages and dependencies are now saved into binary files
[scilab.git] / scilab / modules / atoms / macros / atoms_internals / atomsLoadInstalleddeps.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 function [child_deps_tree,parent_deps_tree] = atomsLoadInstalleddeps(allusers)
13         
14         lhs = argn(1);
15         rhs = argn(2);
16         
17         // Init the output argument
18         // =========================================================================
19         child_deps_tree  = struct();
20         parent_deps_tree = struct();
21         
22         // Check number of input arguments
23         // =========================================================================
24         
25         if rhs <> 1 then
26                 error(msprintf(gettext("%s: Wrong number of input argument: %d expected.\n"),"atomsLoadInstalleddeps",1));
27         end
28         
29         // Check number of input argument type
30         // =========================================================================
31         
32         if (type(allusers)<>4) & (type(allusers)<>10) then
33                 error(msprintf(gettext("%s: Wrong type for input argument #%d: A boolean or a string expected.\n"),"atomsLoadInstalleddeps",1));
34         end
35         
36         // Define the path of the file that will record the change according to
37         // the "allusers" value
38         // =========================================================================
39         
40         if (type(allusers)==10) & (allusers=="all") then
41                 installed_deps_file = [ pathconvert(SCI+"/.atoms/installed_deps.bin",%F); pathconvert(SCIHOME+"/atoms/installed_deps.bin",%F) ];
42         elseif allusers then
43                 installed_deps_file = pathconvert(SCI+"/.atoms/installed_deps.bin",%F);
44         else
45                 installed_deps_file = pathconvert(SCIHOME+"/atoms/installed_deps.bin",%F);
46         end
47         
48         // Loop on installed_deps files
49         // =========================================================================
50         
51         for i=1:size(installed_deps_file,"*")
52                 
53                 // Does the file exist,
54                 // If yes, load the tree
55                 // If not, the job is done for this file
56                 // ---------------------------------------------------------------------
57                 
58                 if fileinfo(installed_deps_file(i)) <> [] then
59                         load(installed_deps_file(i),"child_deps","parent_deps");
60                 else
61                         continue
62                 end
63                 
64                 // contenate installed_deps into tree_out
65                 child_deps_tree = atomsCatTree(child_deps_tree,child_deps);
66                 
67                 if lhs > 1 then
68                         parent_deps_tree = atomsCatTree(parent_deps_tree,parent_deps);
69                 end
70                 
71         end
72         
73 endfunction