8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
package require minirivet
set mode "run"
if {[lindex $argv 0] == "--dump-tcl"} {
set mode "dump-tcl"
}
proc remove_debug {input} {
set output [list]
set lastLine -
foreach line [split $input "\n"] {
if {[string match -nocase "*XVFS_DEBUG*" $line]} {
continue
}
if {$lastLine eq "" && $line eq ""} {
continue
}
set lastLine $line
lappend output $line
}
return [join $output "\n"]
}
switch -- $mode {
"run" {
::minirivet::parse $template
}
"dump-tcl" {
set xvfs_tcl [file join $sourceDirectory lib xvfs xvfs.tcl]
set xvfs_core_h [file join $sourceDirectory xvfs-core.h]
set xvfs_core_c [file join $sourceDirectory xvfs-core.c]
set cleanup {
"#include <xvfs-core.h>" ""
"#include <xvfs-core.c>" ""
}
set core_header_data ""
append core_header_data [string map $cleanup [read [open $xvfs_core_h]]] "\n"
append core_header_data [string map $cleanup [read [open $xvfs_core_c]]] "\n"
if {[lsearch -exact $argv "--remove-debug"] != -1} {
set core_header_data [remove_debug $core_header_data]
}
puts "#! /usr/bin/env tclsh"
puts ""
puts [read [open $xvfs_tcl]]
puts ""
puts [list puts -nonewline $core_header_data]
puts ""
|