Julian Noble
2 years ago
12 changed files with 281 additions and 0 deletions
@ -0,0 +1,100 @@
|
||||
|
||||
package require shellfilter |
||||
interp alias {} a+ {} shellfilter::ansi::+ |
||||
|
||||
#lassign $argv head |
||||
set args [lassign $::argv target] |
||||
puts stdout "::argv '$::argv'" |
||||
puts stdout "target:'$target' args:'$args'" |
||||
if {![string length $target]} { |
||||
set target stdout |
||||
} |
||||
if {([llength $args] % 2) != 0} { |
||||
puts stderr "Usage [info script] \[targetfile|stderr|stdout\] -format html|ansi" |
||||
flush stderr |
||||
error 1 |
||||
} |
||||
set defaults [dict create \ |
||||
-format ansi\ |
||||
] |
||||
|
||||
set opts [dict merge $defaults $args] |
||||
set format [string tolower [dict get $opts -format]] |
||||
|
||||
set known_formats [list "ansi" "html"] |
||||
foreach f $format { |
||||
if {$f ni $known_formats} { |
||||
puts stderr "Unrecognized -format $f" |
||||
flush stderr |
||||
error 2 |
||||
} |
||||
} |
||||
|
||||
while { [gets stdin line] >= 0 } { |
||||
lappend fileLines $line |
||||
foreach word [regexp -all -inline {[A-Za-z0-9]+} $line] { |
||||
dict incr wordcount [string tolower $word] |
||||
} |
||||
} |
||||
|
||||
if {$target in {stdout stderr}} { |
||||
set fp $target |
||||
} else { |
||||
set fp [open "$target" w] |
||||
} |
||||
|
||||
if {"html" in $format} { |
||||
puts $fp "<html>" |
||||
puts $fp "<head><title>onlies</title></head>" |
||||
puts $fp "<body>" |
||||
foreach line $fileLines { |
||||
set text "<pre>" |
||||
set strLength [string length $line] |
||||
for {set i 0} {$i < $strLength} {} { |
||||
if {![string is alnum [string index $line $i]]} { |
||||
append text [string index $line $i] |
||||
incr i |
||||
} else { |
||||
set word [regexp -inline {[A-Za-z0-9]+} [string range $line $i end]] |
||||
if {[dict exists $wordcount $word] && [dict get $wordcount $word] == 1} { |
||||
append text "<span style=background-color:yellow>" $word "</span>" |
||||
} else { |
||||
append text $word |
||||
} |
||||
incr i [string length $word] |
||||
} |
||||
} |
||||
append text "</pre>" |
||||
puts $fp $text |
||||
} |
||||
puts $fp "</body>" |
||||
puts $fp "</html>" |
||||
} |
||||
if {"ansi" in $format} { |
||||
set highlight [a+ yellow bold] |
||||
foreach line $fileLines { |
||||
set text "" |
||||
set strLength [string length $line] |
||||
for {set i 0} {$i < $strLength} {} { |
||||
if {![string is alnum [string index $line $i]]} { |
||||
append text [string index $line $i] |
||||
incr i |
||||
} else { |
||||
set word [regexp -inline {[A-Za-z0-9]+} [string range $line $i end]] |
||||
if {[dict exists $wordcount $word] && [dict get $wordcount $word] == 1} { |
||||
append text "$highlight" $word "[a+]" |
||||
} else { |
||||
append text $word |
||||
} |
||||
incr i [string length $word] |
||||
} |
||||
} |
||||
puts $fp $text |
||||
} |
||||
} |
||||
|
||||
|
||||
if {$target ni {stdout stderr}} { |
||||
close $fp |
||||
} |
||||
|
@ -0,0 +1,5 @@
|
||||
puts stdout "1 (stdout) test of error in scriptlib tcl script" |
||||
puts stderr "2 (stderr) error line will be run next - followed by a dashed line on stdout" |
||||
error "This is the error" |
||||
puts stdout "-----------------------------" |
||||
|
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/lua |
||||
|
||||
--chan configure stdout -buffering none |
||||
io.stdout:setvbuf("no") |
||||
--chan configure stderr -buffering none |
||||
io.stderr:setvbuf("no") |
||||
--puts -nonewline stderr "1 hello on stderr with crlf newline\r\n" |
||||
io.stderr:write("1 hello on stderr from LUA with crlf newline\r\n") |
||||
--flush stderr |
||||
io.stderr:flush() |
||||
--puts -nonewline stdout "2 hello on stdout with crlf newline\r\n" |
||||
io.write("2 hello on stdout from LUA with crlf newline\r\n") |
||||
--flush stdout |
||||
io.stdout:flush() |
||||
--puts -nonewline stderr "3 hello on stderr with unix newline\n" |
||||
io.stderr:write("3 hello on stderr from LUA with unix newline\n") |
||||
--flush stderr |
||||
io.stderr:flush() |
||||
--puts -nonewline stdout "4 hello on stdout with unix newline\n" |
||||
io.write("4 hello on stdout from LUA with unix newline\n") |
||||
--flush stdout |
||||
io.stdout:flush() |
||||
--puts -nonewline stderr "5 hello on stderr no line-ending" |
||||
io.stderr:write("5 hello on stderr from LUA no line-ending") |
||||
--flush stderr |
||||
io.stderr:flush() |
||||
--puts -nonewline stdout "6 hello on stdout no line-ending" |
||||
io.stdout:write("6 hello on stdout from LUA no line-ending") |
||||
--flush stdout |
||||
io.stdout:flush() |
@ -0,0 +1,31 @@
|
||||
<?php |
||||
//chan configure stdout -buffering none |
||||
|
||||
//chan configure stderr -buffering none |
||||
//io.stderr:setvbuf("no") |
||||
//puts -nonewline stderr "1 hello on stderr with crlf newline\r\n" |
||||
fwrite(STDERR, "1 hello on stderr from PHP with crlf newline\r\n"); |
||||
//flush stderr |
||||
//io.stderr:flush() |
||||
//puts -nonewline stdout "2 hello on stdout with crlf newline\r\n" |
||||
fwrite(STDOUT, "2 hello on stdout from PHP with crlf newline\r\n"); |
||||
//flush stdout |
||||
//io.stdout:flush() |
||||
//puts -nonewline stderr "3 hello on stderr with unix newline\n" |
||||
fwrite(STDERR, "3 hello on stderr from PHP with unix newline\n"); |
||||
//flush stderr |
||||
//io.stderr:flush() |
||||
//puts -nonewline stdout "4 hello on stdout with unix newline\n" |
||||
fwrite(STDOUT, "4 hello on stdout from PHP with unix newline\n"); |
||||
//flush stdout |
||||
//io.stdout:flush() |
||||
//puts -nonewline stderr "5 hello on stderr no line-ending" |
||||
fwrite(STDERR, "5 hello on stderr from PHP no line-ending"); |
||||
//flush stderr |
||||
//flush(); |
||||
//puts -nonewline stdout "6 hello on stdout no line-ending" |
||||
fwrite(STDOUT, "6 hello on stdout from PHP no line-ending"); |
||||
//flush stdout |
||||
//flush(); |
||||
//io.stdout:flush() |
||||
?> |
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/lua |
||||
|
||||
--chan configure stdout -buffering none |
||||
io.stdout:setvbuf("no") |
||||
--chan configure stderr -buffering none |
||||
io.stderr:setvbuf("no") |
||||
--puts -nonewline stderr "1 hello on stderr with crlf newline\r\n" |
||||
io.stderr:write("1 hello on stderr from LUA with crlf newline\r\n") |
||||
--flush stderr |
||||
io.stderr:flush() |
||||
--puts -nonewline stdout "2 hello on stdout with crlf newline\r\n" |
||||
io.write("2 hello on stdout from LUA with crlf newline\r\n") |
||||
--flush stdout |
||||
io.stdout:flush() |
||||
--puts -nonewline stderr "3 hello on stderr with unix newline\n" |
||||
io.stderr:write("3 hello on stderr from LUA with unix newline\n") |
||||
--flush stderr |
||||
io.stderr:flush() |
||||
--puts -nonewline stdout "4 hello on stdout with unix newline\n" |
||||
io.write("4 hello on stdout from LUA with unix newline\n") |
||||
--flush stdout |
||||
io.stdout:flush() |
||||
--puts -nonewline stderr "5 hello on stderr no line-ending" |
||||
io.stderr:write("5 hello on stderr from LUA no line-ending") |
||||
--flush stderr |
||||
io.stderr:flush() |
||||
--puts -nonewline stdout "6 hello on stdout no line-ending" |
||||
io.stdout:write("6 hello on stdout from LUA no line-ending") |
||||
--flush stdout |
||||
io.stdout:flush() |
@ -0,0 +1,31 @@
|
||||
<?php |
||||
//chan configure stdout -buffering none |
||||
|
||||
//chan configure stderr -buffering none |
||||
//io.stderr:setvbuf("no") |
||||
//puts -nonewline stderr "1 hello on stderr with crlf newline\r\n" |
||||
fwrite(STDERR, "1 hello on stderr from PHP with crlf newline\r\n"); |
||||
//flush stderr |
||||
//io.stderr:flush() |
||||
//puts -nonewline stdout "2 hello on stdout with crlf newline\r\n" |
||||
fwrite(STDOUT, "2 hello on stdout from PHP with crlf newline\r\n"); |
||||
//flush stdout |
||||
//io.stdout:flush() |
||||
//puts -nonewline stderr "3 hello on stderr with unix newline\n" |
||||
fwrite(STDERR, "3 hello on stderr from PHP with unix newline\n"); |
||||
//flush stderr |
||||
//io.stderr:flush() |
||||
//puts -nonewline stdout "4 hello on stdout with unix newline\n" |
||||
fwrite(STDOUT, "4 hello on stdout from PHP with unix newline\n"); |
||||
//flush stdout |
||||
//io.stdout:flush() |
||||
//puts -nonewline stderr "5 hello on stderr no line-ending" |
||||
fwrite(STDERR, "5 hello on stderr from PHP no line-ending"); |
||||
//flush stderr |
||||
//flush(); |
||||
//puts -nonewline stdout "6 hello on stdout no line-ending" |
||||
fwrite(STDOUT, "6 hello on stdout from PHP no line-ending"); |
||||
//flush stdout |
||||
//flush(); |
||||
//io.stdout:flush() |
||||
?> |
@ -0,0 +1,8 @@
|
||||
chan configure stderr -buffering none |
||||
puts -nonewline stderr "1 hello on stderr with crlf newline\r\n" |
||||
flush stderr |
||||
puts -nonewline stderr "2 hello on stderr with unix newline\n" |
||||
flush stderr |
||||
puts -nonewline stderr "3 hello on stderr no line-ending" |
||||
flush stderr |
||||
|
@ -0,0 +1,8 @@
|
||||
chan configure stdout -buffering none |
||||
puts -nonewline stdout "1 hello on stdout with crlf newline\r\n" |
||||
flush stdout |
||||
puts -nonewline stdout "2 hello on stdout with unix newline\n" |
||||
flush stdout |
||||
puts -nonewline stdout "3 hello on stdout no line-ending" |
||||
flush stdout |
||||
|
@ -0,0 +1,6 @@
|
||||
set sepline [string repeat - 40] |
||||
puts stdout "testing some aliases" |
||||
puts stdout $sepline |
||||
puts stdout "1 ll - should show long dir listing" |
||||
ll |
||||
puts stdout $sepline |
@ -0,0 +1,7 @@
|
||||
#puts -nonewline stdout "info script\r\n" |
||||
#puts stdout "[info script]" |
||||
puts stdout "::argc" |
||||
puts stdout $::argc |
||||
puts stdout "::argv" |
||||
puts stdout "$::argv" |
||||
|
@ -0,0 +1,20 @@
|
||||
|
||||
set msg "-[file tail [info script]] done-" |
||||
if {$::argc >= 1} { |
||||
set howlong [lindex $::argv 0] |
||||
if {$::argc >=2} { |
||||
set msg [lindex $::argv 1] |
||||
} |
||||
} else { |
||||
set howlong 1000 |
||||
} |
||||
puts stdout "wait: $howlong" |
||||
|
||||
set ::script_wait_var 0 |
||||
|
||||
if {[string is integer -strict $howlong]} { |
||||
after $howlong {set ::script_wait_var 1} |
||||
} |
||||
|
||||
vwait ::script_wait_var |
||||
puts -nonewline stderr $msg\n |
Loading…
Reference in new issue