Bug #9798 fixed - .quit script of atoms modules were not evaluated when leaving Scilab.
[scilab.git] / scilab / modules / modules_manager / macros / tbx_build_cleaner.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2010 - DIGITEO - Pierre MARECHAL
3 // Copyright (C) 2009-2012 - DIGITEO - Allan CORNET
4 //
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at
9 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10
11 // Generate a cleaner.sce script for the toolbox
12
13 function tbx_build_cleaner(name, path)
14
15   rhs = argn(2);
16
17   // Number of input arguments
18
19   if and(rhs <> [1 2]) then
20     error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"), "tbx_build_cleaner", 1, 2));
21   end
22
23   // Input argument N°1
24   // name
25
26   if type(name) <> 10 then
27     error(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"), "tbx_build_cleaner", 1));
28   end
29
30   if size(name,"*") <> 1 then
31     error(msprintf(gettext("%s: Wrong size for input argument #%d: A string expected.\n"), "tbx_build_cleaner", 1));
32   end
33
34   // Input argument N°2
35   // path
36
37   if rhs < 2 then
38     path = pwd();
39   else
40     if type(path) <> 10 then
41       error(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"), "tbx_build_cleaner", 2));
42     end
43
44     if size(path,"*") <> 1 then
45       error(msprintf(gettext("%s: Wrong size for input argument #%d: A string expected.\n"), "tbx_build_cleaner", 2));
46     end
47
48     if ~isdir(path) then
49       error(msprintf(gettext("%s: The directory ''%s'' doesn''t exist or is not read accessible.\n"), "tbx_build_cleaner", path));
50     end
51   end
52
53   // build the cleaner file
54
55   mprintf(gettext("Generating cleaner.sce...\n"));
56
57   cleanertxt = [
58   "// This file is released under the 3-clause BSD license. See COPYING-BSD.",
59   "// Generated by builder.sce: Please, do not edit this file",
60   "",
61   "try",
62   "  getversion(""scilab"");",
63   "catch",
64   "  error(""Scilab 5.0 or more is required."");",
65   "end",
66   "function perform_clean()",
67   "  root_tlbx = get_absolute_file_path(''cleaner.sce'');",
68   "",
69   "  if isfile(root_tlbx + ''/macros/cleanmacros.sce'') then",
70   "    exec(root_tlbx+''/macros/cleanmacros.sce'');",
71   "  end",
72   "",
73   "  if isfile(root_tlbx + ''/src/cleaner_src.sce'') then",
74   "    exec(root_tlbx+''/src/cleaner_src.sce'');",
75   "  end",
76   "",
77   "  if isfile(root_tlbx + ""/sci_gateway/cleaner_gateway.sce"") then",
78   "    exec(root_tlbx + ""/sci_gateway/cleaner_gateway.sce"");",
79   "    mdelete(root_tlbx + ""/sci_gateway/cleaner_gateway.sce"");",
80   "   end",
81   "",
82   "  if isfile(root_tlbx + ""/help/cleaner_help.sce"") then",
83   "    exec(root_tlbx + ""/help/cleaner_help.sce"");",
84   "  end",
85   "",
86   "  if isfile(root_tlbx + ""/loader.sce"") then",
87   "    mdelete(root_tlbx + ""/loader.sce"");",
88   "  end",
89   "",    
90   "  if isfile(root_tlbx + ""/unloader.sce"") then",
91   "    mdelete(root_tlbx + ""/unloader.sce"");",
92   "  end",
93
94   "endfunction",
95   "perform_clean();",
96   "clear perform_clean;"];
97
98   cleanerfile = pathconvert(path+"/cleaner.sce", %F);
99
100   if ~mputl(cleanertxt, cleanerfile) then
101     error(msprintf(gettext("%s: The file %s cannot been created, please check if you have write access on this file.\n"), "tbx_build_cleaner", cleanerfile));
102   end
103
104 endfunction