--- /dev/null
+#!/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