summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rwxr-xr-xclerk7
-rwxr-xr-xclerk_column.pl28
3 files changed, 33 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index f721c8d..8e6f3ca 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,7 @@ endif
install:
install -Dm755 clerk $(DESTDIR)$(PREFIX)/bin/clerk
+ install -Dm755 clerk_column.pl $(DESTDIR)$(PREFIX)/bin/clerk_column.pl
install -Dm755 clerk_helper $(DESTDIR)$(PREFIX)/bin/clerk_helper
install -Dm644 config.clerk $(DESTDIR)$(PREFIX)/share/doc/clerk/config.example
install -Dm644 config.clerk $(DESTDIR)/etc/clerk.conf
diff --git a/clerk b/clerk
index 9d9f0cf..f427f50 100755
--- a/clerk
+++ b/clerk
@@ -178,18 +178,18 @@ updateCache () {
| sed 's:/[^/]*$::' | awk -F ' ○ ' '!seen[$1 $2 $3 $4]++' \
| uniq \
| gawk -F ' ○ ' '{ printf "%."'${artist_width}'"s\t%."'${date_width}'"s\t%."'${album_width}'"s\t%.300s\n", $1, $2, $3, $4 }' \
- | column -s $'\t' -t -o $'\t' > $HOME/.config/clerk/latest.cache
+ | clerk_column.pl > $HOME/.config/clerk/latest.cache
mpc --format '[%albumartist%|%artist%]\t(%date%)\t%album% [(CD %disc%)]\t%file%' \
search filename '' \
| sed 's:/[^/]*$::' \
| awk -F '\t' '!seen[$1 $2 $3 $4]++' \
| sort \
| gawk -F '\t' '{ printf "%."'${artist_width}'"s\t%."'${date_width}'"s\t%."'${album_width}'"s\t%.300s\n", $1, $2, $3, $4 }' \
- | column -t -s $'\t' -o $'\t' > $HOME/.config/clerk/albums.cache
+ | clerk_column.pl > $HOME/.config/clerk/albums.cache
mpc --format '%track%\t%title%\t%artist%\t(%date%)\t%album%\t%file%' \
search filename '' \
| gawk -F '\t' '{ printf "%."'${track_width}'"s\t%."'${title_width}'"s\t%."'${artist_width}'"s\t%."'${date_width}'"s\t%."'${album_width}'"s\t%.500s\n", $1, $2, $3, $4, $5, $6 }' \
- | column -s $'\t' -t -o $'\t' \
+ | clerk_column.pl \
> $HOME/.config/clerk/tracks.cache
notify-send "clerk" "finished updating cache files"
date=$(mpc stats | grep 'DB Updated: ')
@@ -1390,6 +1390,7 @@ ${line2}</span>"
-kb-row-tab '' \
-dmenu \
-sep '\n' \
+ -matching regex \
-kb-custom-1 "${add}" \
-kb-custom-2 "${insert}" \
-kb-custom-3 "${replace}" \
diff --git a/clerk_column.pl b/clerk_column.pl
new file mode 100755
index 0000000..cbdca6c
--- /dev/null
+++ b/clerk_column.pl
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+
+# written by Florian Pritz <bluewind@xinu.at>
+
+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++) {
+ $parts[$counter] =~ s/\s+$//;
+ my $partlen = $width{$counter};
+ printf "%-*s\t", $partlen, $parts[$counter];
+ }
+ printf "%s\n", $parts[-1];
+}