diff options
author | Florian Pritz <bluewind@xinu.at> | 2019-01-04 13:54:00 +0100 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2019-01-04 13:54:00 +0100 |
commit | d4b107f5035413bcf93f24a523a6f8b695ba6b92 (patch) | |
tree | 74f53d2c3cbf7d71264d1c9239d6af21f3038724 | |
parent | f2c64faeecf602c024b81fcc3760981e36de45f4 (diff) | |
download | bin-d4b107f5035413bcf93f24a523a6f8b695ba6b92.tar.gz bin-d4b107f5035413bcf93f24a523a6f8b695ba6b92.tar.xz |
Add new scripts
Signed-off-by: Florian Pritz <bluewind@xinu.at>
-rw-r--r-- | column.pl | 27 | ||||
-rwxr-xr-x | cw | 3 | ||||
-rw-r--r-- | get-arch-keys.pl | 16 | ||||
-rwxr-xr-x | ping-ssh | 47 | ||||
-rwxr-xr-x | sort-images-size | 3 |
5 files changed, 96 insertions, 0 deletions
diff --git a/column.pl b/column.pl new file mode 100644 index 0000000..87290af --- /dev/null +++ b/column.pl @@ -0,0 +1,27 @@ +#!/usr/bin/perl + +use Data::Dumper; +my %width = (); +my @lines = (); +while (my $line = <>) { + chomp $line; + push @lines, $line; + my @parts = split(/\t/, $line); + my $counter = 0; + for (; $counter < @parts; $counter++) { + my $partlen = length($parts[$counter]); + $width{$counter} = $partlen if !defined($width{$counter}) or $partlen > $width{$counter} + } +} + +for my $line (@lines) { + my @parts = split(/\t/, $line); + my $counter = 0; + for (; $counter < @parts; $counter++) { + my $partlen = $width{$counter}; + printf "%-*s | ", $partlen, $parts[$counter]; + } + printf "\n"; +} + +#print Dumper(\%width); @@ -0,0 +1,3 @@ +#!/bin/bash + +exec chromium --new-window "$@" diff --git a/get-arch-keys.pl b/get-arch-keys.pl new file mode 100644 index 0000000..b7ee42d --- /dev/null +++ b/get-arch-keys.pl @@ -0,0 +1,16 @@ +#!/usr/bin/perl +use warnings; +use strict; +use JSON; +use WWW::Mechanize; +use v5.10; + +my $url = 'https://www.archlinux.org/master-keys/json/'; + +my $mech = WWW::Mechanize->new(cookie_jar => {}); + +$mech->get($url); +my $json = JSON::decode_json($mech->content()); +for my $node (@{$json->{nodes}}) { + say $node->{key} if $node->{group} eq "packager" and $node->{key}; +} diff --git a/ping-ssh b/ping-ssh new file mode 100755 index 0000000..a35e44c --- /dev/null +++ b/ping-ssh @@ -0,0 +1,47 @@ +#!/usr/bin/python + +from timeit import default_timer as timer +import statistics +import subprocess +import sys + +if len(sys.argv) <= 3: + print("usage: ping-ssh <host> <repeat count> <string>") + sys.exit(1) + +host = sys.argv[1] +repeat = int(sys.argv[2]) +ping_string = sys.argv[3] + +def ping(stdin, stdout): + ping_bytes = (ping_string+"\n").encode() + stdin.write(ping_bytes) + result = stdout.read(len(ping_bytes)) + assert result == ping_bytes + +proc = subprocess.Popen(['ssh', host, 'cat'], + bufsize=0, + stdout=subprocess.PIPE, stdin=subprocess.PIPE) + +# ping once to ensure the "connection" is ready. Without this the first ping +# would be much slower than all others due to ssh/cat starting up +ping(proc.stdin, proc.stdout) + +times = [] + +for i in range(repeat): + start = timer() + ping(proc.stdin, proc.stdout) + end = timer() + time = end - start + times.append(time) + print("{:.5f}ms".format(time * 1000)) + +print("") +print("mean: {:.5f}ms".format(statistics.mean(times) * 1000)) +print("median: {:.5f}ms".format(statistics.median(times) * 1000)) +print("min: {:.5f}ms".format(min(times) * 1000)) +print("max: {:.5f}ms".format(max(times) * 1000)) + +proc.stdin.close() +proc.wait() diff --git a/sort-images-size b/sort-images-size new file mode 100755 index 0000000..d6781ff --- /dev/null +++ b/sort-images-size @@ -0,0 +1,3 @@ +#!/bin/sh + +perl-rename -v 'BEGIN{use Image::ExifTool qw(ImageInfo); use Date::Parse; use Date::Format;}; $data = ImageInfo($_); $size_dir = "small"; $size_dir = "large" if $data->{ImageWidth} > 350 or $data->{ImageHeight} > 350; $date = time2str("%Y-%m-%d", str2time($data->{ModifyDate})); $_ = "$size_dir/$date/$_";' "$@" |