License Header change: Removed the LICENSE_END before beta
[scilab.git] / scilab / modules / atoms / macros / atoms_internals / atomsToolboxDetails.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 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12
13 // Internal function
14
15 // Return the mlist associated with the wanted toolbox
16
17 function details = atomsToolboxDetails(package,field)
18
19     rhs = argn(2);
20
21     // Check number of input arguments
22     // =========================================================================
23
24     if rhs < 1 | rhs > 2 then
25         error(msprintf(gettext("%s: Wrong number of input argument: %d to %d expected.\n"),"atomsToolboxDetails",1,2));
26     end
27
28     // Check input parameters type
29     // =========================================================================
30
31     if type(package) <> 10 then
32         error(msprintf(gettext("%s: Wrong type for input argument #%d: String array expected.\n"),"atomsToolboxDetails",1));
33     end
34
35     if rhs>1 & type(field)<>10 then
36         error(msprintf(gettext("%s: Wrong type for input argument #%d: string expected.\n"),"atomsToolboxDetails",2));
37     end
38
39     // Check input parameters dimensions
40     // =========================================================================
41
42     if or(size(package) <> [1 2]) then
43         error(msprintf(gettext("%s: Wrong size for input argument #%d: 1x2 string matrix expected.\n"),"atomsToolboxDetails",1));
44     end
45
46     if rhs>1 & size(field,"*") <> 1 then
47         error(msprintf(gettext("%s: Wrong size for input argument #%d: string expected.\n"),"atomsToolboxDetails",2));
48     end
49
50     // Get the full list of packages
51     // =========================================================================
52
53     allpackages = atomsDESCRIPTIONget();
54
55     name    = package(1);
56     version = package(2);
57
58     if ~ isfield(allpackages,name) then
59         error(msprintf(gettext("%s: the package ''%s'' does not exist.\n"),"atomsToolboxDetails",name));
60     end
61
62     package_versions = allpackages(name);
63
64     if ~ isfield(package_versions,version) then
65         error(msprintf(gettext("%s: the package ''%s'' does not exist.\n"),"atomsToolboxDetails",name+" - "+version));
66     end
67
68     details = package_versions(version);
69
70     // A field is gived :
71     // =========================================================================
72
73     if rhs>=2 then
74
75         if ~ isfield(details,field) then
76             error(msprintf(gettext("%s: the package ''%s'' does not contain the field ''%s''.\n"),"atomsToolboxDetails",name+" - "+version,field));
77         end
78
79         details = details(field);
80
81         return;
82     end
83
84     // Check if this version is installed
85     // =========================================================================
86
87     if atomsIsInstalled([name version]) then
88
89         installedDetails          = atomsGetInstalledDetails(package);
90         details("Version")        = installedDetails(2);
91         details("installAlluser") = installedDetails(3);
92         details("installPath")    = installedDetails(4);
93         details("installStatus")  = installedDetails(5);
94
95     end
96
97 endfunction