my ($self) = @_;
my $txt = $self->selection;
- my $h = md5_hex ($txt);
+ my $filename = md5_hex ($txt) . ".txt";
- my $fn = "/tmp/$h.txt";
+ my $tmpfile = "/tmp/$filename";
- my $msg = "uploaded $h.txt";
+ my $msg = "uploaded $filename";
- if (open my $o, ">" . $fn) {
+ if (open my $o, ">" . $tmpfile) {
print $o $txt;
close $o;
} else {
- $msg = "couldn't write $fn: $!";
+ $msg = "couldn't write $tmpfile: $!";
}
my $cmd = $pastebin_cmd;
- $cmd =~ s/%/$fn/;
- unless (system ($cmd) == 0) {
+ $cmd =~ s/%/$tmpfile/;
+
+ if (system ($cmd) == 0) {
+
+ my $url = $pastebin_url;
+ $url =~ s/%/$filename/;
+
+ $self->selection ($url);
+ } else {
$msg = "couldn't upload, '$cmd' failed";
}
- $self->selection ($pastebin_url . "$h.txt");
-
my $ov = $timers->{ov} = $self->overlay (-1, 0, length ($msg), 1, urxvt::OVERLAY_RSTYLE, 0);
$ov->set (0, 0, $msg);
You can look at the source of the selection extension to see more
interesting uses, such as parsing a line from beginning to end.
-This extension also offers the following bindable keyboard command:
+This extension also offers following bindable keyboard commands:
=over 4
URxvt.keysym.C-M-r: perl:selection:rot13
+=item remote-pastebin
+
+Upload the selection as textfile to a remote site.
+
+ URxvt.keysym.C-M-e: perl:selection:remote-pastebin
+
+To set the command to upload the file set this resource:
+
+ URxvt.selection-pastebin-cmd: rsync -apP % ruth:/var/www/www.ta-sa.org/files/txt/.
+
+The % is the placeholder for the textfile. The name of the textfile is the hex encoded
+md5 sum of the selection.
+After an successful upload the selection will be replaced by the following url
+(the % is the placeholder for the filename):
+
+ URxvt.selection-pastebin-url: http://www.ta-sa.org/files/txt/%
+
=back
=item option-popup (enabled by default)