Atoms 0.2
[scilab.git] / scilab / modules / atoms / macros / atomsDownloadPackage.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 // Download packages and return the path of the downloaded files
13
14 function result = atomsDownloadPackage(package_names,package_versions,allusers)
15         
16         result       = "";
17         
18         // Check input parameters
19         // =========================================================================
20         
21         rhs = argn(2);
22         
23         if rhs < 2 | rhs > 3 then
24                 error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"),"atomsInstall",2,3))
25         end
26         
27         if type(package_names) <> 10 then
28                 error(msprintf(gettext("%s: Wrong type for input argument #%d: String array expected.\n"),"atomsInstall",1));
29         end
30         
31         if type(package_versions) <> 10 then
32                 error(msprintf(gettext("%s: Wrong type for input argument #%d: String array expected.\n"),"atomsInstall",2));
33         end
34         
35         // Install for all users or just for me ?
36         // =========================================================================
37         
38         if rhs == 1 then
39                 // By default, install for all users (if we have write access of course !)
40                 if atomsAUWriteAccess() then
41                         allusers = %T; 
42                 else
43                         allusers = %F;
44                 end
45         
46         else
47                 // Just check if it's a boolean
48                 if type(allusers) <> 4 then
49                         error(msprintf(gettext("%s: Wrong type for input argument #%d: A boolean expected.\n"),"atomsInstall",2));
50                 end
51                 
52                 // Check if we have the write access
53                 if allusers & ~ atomsAUWriteAccess() then
54                         error(msprintf(gettext("%s: You haven''t write access on this directory : %s.\n"),"atomsInstall",2,pathconvert(SCI+"/.atoms")));
55                 end
56         end
57         
58         // Manage download path
59         // =========================================================================
60         
61         if allusers then
62                 download_path = pathconvert(SCI+"/.atoms");
63         else
64                 download_path = pathconvert(SCIHOME+"/atoms");
65         end
66         
67         if ~ chdir(download_path) then
68                 error(msprintf(gettext("%s: The directory %s is not accessible\n"),"atomsInstall",download_path));
69         end
70         
71         // Loop on packages
72         // =========================================================================
73         
74         for i=1:size(packages,"*")
75         end
76         
77
78         
79
80 //      global conflictingList
81 //      global conflictLocal
82 //      global nomconflictLocal
83 //      global conflictVersion
84 // 
85 //      rhs = argn(2)
86 //      if (rhs == 2 | rhs == 1 | rhs == 3) then
87 //      // We check if the arguments exist
88 //      if rhs == 1
89 //              checkVersionScilab = %t
90 //      end
91 //      if rhs <= 2
92 //              version = ""
93 //      end
94 //      // We remove the special characters
95 //      name = atomsNormalizeName(name)
96 //      // We go to the dedicated directory
97 //      rep = atomsToolboxDirectory()
98 //      cd (rep)
99 //      // Required to empty the global variables before any use of atomsCheckConflict
100 //      clearglobal conflictingList
101 //      clearglobal conflictLocal
102 //      clearglobal nomconflictLocal
103 //      clearglobal conflictVersion
104 //      // Retrieve of the list of toolboxes to install
105 //      listTool = atomsCheckConflict(name, version, checkVersionScilab)
106 //      // If there is an empty line, it is because a dependency is missing
107 //      if find(listTool == "") <> []
108 //              if conflictLocal == 1
109 //              atomsDisplayMessage(sprintf(_("The Toolbox version %s locally present doesn''t match. Update it.\n"),nomconflictLocal))
110 //              elseif listTool <> ""
111 //              atomsDisplayMessage(_("Impossible to install all the dependencies.\n"))
112 //              end
113 //              result =  %f
114 //              return result
115 //      elseif conflictVersion == 1
116 //              atomsDisplayMessage(sprintf(_("Conflit of version for %s"),nomconflictLocal))
117 //              result =  %f
118 //              return result
119 //      end
120 //      // Retrieve of the toolboxes list which are already in local
121 //      cd (rep)
122 //      listLocal = ls()
123 //      // Treatment of the toolboxes to install
124 //      [m, n] = size(listTool)
125 //      for i=1:m
126 //              [name, version] = atomsSeparateVersionDep(listTool(i))
127 //              // If it is locally present, we pass to the following one
128 //              if find(listLocal == name) <> []
129 //              continue
130 //              else
131 //              atomsDisplayMessage(_("Is going to be install: ") + name)
132 //              if ~atomsDlInstall(name, version)
133 //                      disp(_("Error during the installation"))
134 //                      result = %f
135 //                      return result
136 //              end
137 //              end
138 //      end
139 //      result = %t
140 //      return result
141
142
143
144 endfunction