proc run-checker {opt v} {
global Schema
- set fh [open |[list "$Schema/[find-opt-schema $opt]/check" $opt 2>@1 << $v] r]
+ set fh [open [list "|$Schema/[find-opt-schema $opt]/check" $opt 2>@1 << $v]]
set v [$fh read]
if {[catch {close $fh}]} {
puts -nonewline stderr $v
exit 1
}
- untaint v
+ catch {untaint v}
return $v
}
}
if {[file exists $Stash/$opt]} {
if {[is-bin $opt]} {
- set fh [open $Stash/$opt r]
+ set fh [open $Stash/$opt]
fconfigure $fh -translation binary
fconfigure stdout -translation binary
$fh copyto stdout
set pth [find-opt-schema $opt]
if {[file exists $Schema/$pth/apply]} {
puts stderr "applying $opt..."
- if {[catch {exec | [list "$Schema/$pth/apply" $opt] >@stdout 2>@stderr}]} {
+ if {[catch {exec {*}[list "$Schema/$pth/apply" $opt] >@stdout 2>@stderr}]} {
exit 1
}
exit
if {[file exists $Schema/$pth/*]} {
set rc 0
foreach dir [readents $Stash/$opt directory] {
- if {[catch {exec | [list dsc apply $opt/$dir] >@stdout 2>@stderr}]} {
+ if {[catch {exec {*}[list dsc apply $opt/$dir] >@stdout 2>@stderr}]} {
set rc 1
}
}
exit $rc
}
foreach ent [readents $Schema/$opt directory] {
- if {[catch {exec | [list dsc apply $opt/$ent] >@stdout 2>@stderr}]} {
+ if {[catch {exec {*}[list dsc apply $opt/$ent] >@stdout 2>@stderr}]} {
set rc 1
}
}
puts $fh [string range $fn [string length $Stash]+1 end]
}
close $fh
- set fh [open |[list diff -u -L dirs -L dirs $dirsSaved $dirsStash] r]
+ set fh [open [list |diff -u -L dirs -L dirs $dirsSaved $dirsStash]]
puts -nonewline [read $fh]
catch {close $fh}
file delete $dirsSaved
file delete $dirsStash
- set fh [open |[list diff -urN $Saved/$opt $Stash/$opt] r]
+ set fh [open [list |diff -urN $Saved/$opt $Stash/$opt]]
set prefixSaved "--- $Saved/"
set prefixSavedLen [string length $prefixSaved]
set prefixStash "+++ $Stash/"
}
revert {
catch {file delete -force $Stash/$opt}
- exec | [list cp -a $Saved/$opt $Stash/$opt]
+ exec {*}[list cp -a $Saved/$opt $Stash/$opt]
}
commit {
file delete -force $Saved.bak
set tmp $Saved.[expr {int(rand() * 1000000)}]
- exec | [list cp -a $Stash $tmp]
+ exec {*}[list cp -a $Stash $tmp]
exec sync
file rename $Saved $Saved.bak
file rename $tmp $Saved
set sfn [string range $fn [string length $Saved]+1 end]
if {[is-bin $sfn]} {
puts "-- $sfn:base64 --"
- set fh [open "|base64 $fn" r]
+ set fh [open "|base64 $fn"]
$fh copyto stdout
close $fh
} else {
global Stash
file mkdir [file dirname $Stash/$fn]
if {$bin} {
- set fh [open |[list base64 -d > $Stash/$fn] w]
+ set fh [open [list |base64 -d > $Stash/$fn] w]
} else {
set fh [open $Stash/$fn w]
fconfigure $fh -translation binary
}
}
}
+
+# vim: ft=tcl