1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
1
2
3
4
5
6
7
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
|
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
#! /usr/bin/env tclsh
set sourceDirectory [file dirname [file normalize [info script]]]
lappend auto_path [file join $sourceDirectory lib]
package require xvfs
proc ::xvfs::callback::setOutputFileName {args} {
return "/"
}
proc ::xvfs::callback::addOutputFiles {fsName} {
::xvfs::processFile $fsName "" "" {
type directory
children "foo"
}
::xvfs::processFile $fsName "" "foo" {
type file
fileContents "abc"
}
::xvfs::processFile $fsName "./xvfs-create-synthetic" "xvfs-create-synthetic" {
type file
}
return [list "" "foo" "xvfs-create-synthetic"]
dict set ::myOwnVFS "" {
type directory
children {foo xvfs-create-synthetic}
}
dict set ::myOwnVFS "foo" {
type file
fileContents "abc"
}
dict set ::myOwnVFS "xvfs-create-synthetic" {
type file
}
proc ::xvfs::callback::addOutputFiles {fsName} {
dict for {outputName fileContentsDict} $::myOwnVFS {
set inputFile $outputName
if {[dict exists $fileContentsDict inputFile]} {
set inputFile [dict get $fileContentsDict inputFile]
}
::xvfs::processFile $fsName $inputFile $outputName $fileContentsDict
}
return [dict keys $::myOwnVFS]
}
::xvfs::run --directory [pwd] --name synthetic
|