#!/usr/bin/env tclsh set Host paster.example.com set Port 2021 set GnuTLS 1 set fn [lindex $argv 0] set size 0 if {($argc > 0) && [file exists $fn]} { set ext [file extension $fn] set fd [open $fn {RDONLY BINARY}] set size [file size $fn] } else { chan configure stdin -encoding binary -translation binary set data [read stdin] set size [string length $data] if {$argc > 0} {set ext $fn} } if $GnuTLS { set sock [open "|gnutls-cli --logfile=/dev/null -p $Port $Host" {RDWR BINARY}] } { set sock [socket $Host $Port] chan configure $sock -encoding binary -translation binary } puts -nonewline $sock "d" if {[info exists ext]} { set ext [string trimleft $ext .] puts -nonewline $sock [string cat "1:e" [string length $ext] ":$ext"] } puts -nonewline $sock "1:v$size:" if {[info exists fd]} { fcopy $fd $sock close $fd } { puts -nonewline $sock $data } puts -nonewline $sock "e" flush $sock while {[gets $sock line] >= 0} { puts $line } close $sock