b64379d67b37b7186980d68b1b8a368041128eb6
[scilab.git] / scilab / modules / modules_manager / macros / tbx_build_loader.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2008 - INRIA - Simon LIPP <simon.lipp@scilab.org>
3 // Copyright (C) 2010 - DIGITEO - Allan CORNET
4 // Copyright (C) 2010 - DIGITEO - Pierre MARECHAL
5 //
6 // This file must be used under the terms of the CeCILL.
7 // This source file is licensed as described in the file COPYING, which
8 // you should have received as part of this distribution.  The terms
9 // are also available at
10 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11
12 // Generate a loader.sce script for the toolbox
13
14 function tbx_build_loader(name,path)
15
16     rhs = argn(2);
17
18     // Number of input arguments
19
20     if and(rhs<> [1 2]) then
21         error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"),"tbx_build_loader",1,2));
22     end
23
24     // Input argument N°1
25     // → name
26
27     if type(name) <> 10 then
28         error(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"),"tbx_build_loader",1));
29     end
30
31     if size(name,"*") <> 1 then
32         error(msprintf(gettext("%s: Wrong size for input argument #%d: A string expected.\n"),"tbx_build_loader",1));
33     end
34
35     // Input argument N°2
36     // → path
37
38     if rhs < 2 then
39         path = pwd();
40
41     else
42         if type(path) <> 10 then
43             error(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"),"tbx_build_loader",2));
44         end
45
46         if size(path,"*") <> 1 then
47             error(msprintf(gettext("%s: Wrong size for input argument #%d: A string expected.\n"),"tbx_build_loader",2));
48         end
49
50         if ~isdir(path) then
51             error(msprintf(gettext("%s: The directory ''%s'' doesn''t exist or is not read accessible.\n"),"tbx_build_loader",path));
52         end
53     end
54
55     // build the loader file
56
57     mprintf(gettext("Generating loader.sce...\n"));
58
59     loadertxt = [
60         "// This file is released under the 3-clause BSD license. See COPYING-BSD.",
61         "// Generated by builder.sce: Please, do not edit this file",
62         "",
63         "try",
64         " getversion(""scilab"");",
65         "catch",
66         " error(""Scilab 5.0 or more is required."");",
67         "end;",
68         "",
69         "exec(get_absolute_file_path(""loader.sce"")+""etc"+filesep()+"""+"""+name+".start"");"];
70
71     loaderfile = pathconvert(path+"/loader.sce",%F);
72
73     if ~mputl(loadertxt,loaderfile) then
74         error(msprintf(gettext("%s: The file %s cannot been created, please check if you have write access on this file.\n"),"tbx_build_loader",loaderfile));
75     end
76
77 endfunction