X-Git-Url: https://software.frrobert.com/lace/blobdiff_plain/4f225ef3e391ae2253b5a3119b01fa7d29cfd46d..88aaf1cc739e4f2c25eb16d04ef9f3ca4bb9cc05:/lace diff --git a/lace b/lace old mode 100644 new mode 100755 index 2f57350..3a92438 --- a/lace +++ b/lace @@ -6,6 +6,7 @@ # Modified to work with Debian running Sed 3.7 if [ -z "$XDG_CONFIG_HOME" ];then config_place="$HOME/.config/lace" +[[ ! -d "$HOME/.config" ]] && mkdir -p "$HOME/.config" else config_place="$XDG_CONFIG_HOME/lace" fi @@ -16,8 +17,14 @@ red="[31m" blue="[34m" nc="[m" esc=$(echo -e "\033") +if [ ! -d "/tmp" ];then +[[ ! -d "$HOME/.tmp" ]] && mkdir -p "$HOME/.tmp" +tmpfile=$(mktemp ~/.tmp/lace.XXXXXX) +tmpfile2=$(mktemp ~/.tmp/lace.XXXXXX) +else tmpfile=$(mktemp /tmp/lace.XXXXXX) tmpfile2=$(mktemp /tmp/lace.XXXXXX) +fi function reldate() { # stolen from https://unix.stackexchange.com/a/451216 local SEC_PER_MINUTE=$((60)) @@ -72,12 +79,12 @@ function timeline() { domain="$url" url="gemini://$url" else - domain=$(sed 's/gemini:\/\///' <<< "$url") + domain=$(sed 's#gemini://##' <<< "$url") fi if [[ "$url" != *.*/*.* ]] && [[ $url != */ ]];then url="$url/" fi - domain=$(sed 's/\/.*$//' <<< "$domain") + domain=$(sed 's#/.*$##' <<< "$domain") fav=$(openssl s_client -crlf -quiet -connect "$domain:1965" <<<"gemini://$domain/favicon.txt" 2>/dev/null | sed -e '1d') if [ ! -z "$fav" ];then user="$fav $user" @@ -85,28 +92,30 @@ function timeline() { openssl s_client -crlf -quiet -connect "$domain:1965" <<<"$url" 2>/dev/null | sed -e '1d' | sed -n '/##/,$p' | sed -e "s/^\(## .*\)$/\1\n${esc}$red$user${esc}$nc ($domain)/g" >> $tmpfile [[ ! -z $(sed -n '$p' $tmpfile) ]] && echo "" >> $tmpfile done <"$subsfile" - cat $tmpfile | sed -r ':r;/(^|\n)$/!{$!{N;br}};s/\n/\v/g' | sed -rn '/^## .*/p' | sed -e 's/\v/\n/g' | sed -e "s/^## \(.*\)/date -d '\1' +%s/e" | sed -r ':r;/(^|\n)$/!{$!{N;br}};s/\n/\v/g' | sort -r | sed -e 's/\v/\n/g' > $tmpfile - +# cat $tmpfile | sed -r ':r;/(^|\n)$/!{$!{N;br}};s/\n/\v/g' | sed -rn '/^## .*/p' | sed -e 's/\v/\n/g' | sed -e "s/^## \(.*\)/date -d '\1' +%s/e" | sed -r ':r;/(^|\n)$/!{$!{N;br}};s/\n/\v/g' | sort -r | sed -e 's/\v/\n/g' > $tmpfile + cat $tmpfile | sed -r ':r;/(^|\n)$/!{$!{N;br}};s/\n/\v/g' | sed -rn '/^## .*/p' | sed -e 's/\v/\n/g' | sed -e "s/^## \(.*\)/date -d '\1' +%s/e" | sed -r ':r;/(^|\n)$/!{$!{N;br}};s/\n/\v/g' | sort -r | sed -e 's/\v/\n/g' > $tmpfile2 +echo -n "" > $tmpfile # removed segment of code | sed "s/^\([0-9]\+\)$/{reldate \1 $now_unix;}/e" | sed "s/^\([0-9]* [a-z]* ago\)$/${esc}$blue\1${esc}$nc/g" while read line; do if [[ "$line" =~ ^[0-9]{10,}$ ]]; then - reldate "$line" "$(date +%s)" >> $tmpfile2 + reldate "$line" "$(date +%s)" >> $tmpfile - echo "$(date -d @$line)" >> $tmpfile2 + echo "$(date -d @$line)" >> $tmpfile else - echo "$line" >> $tmpfile2 + echo "$line" >> $tmpfile fi - done<$tmpfile - - cat $tmpfile2 | sed "s/^\([0-9]* [a-z]* ago\)$/${esc}$blue\1${esc}$nc/g" >$tmpfile - + done<$tmpfile2 +# + cat $tmpfile | sed "s/^\([0-9]* [a-z]* ago\)$/${esc}$blue\1${esc}$nc/g" >$tmpfile2 +# +sed -i -z -e 's/\[m\n/\[m /g' $tmpfile2 if [[ "$1" == "nope" ]];then - cat $tmpfile && rm -f $tmpfile $tmpfile2 + cat $tmpfile2 && rm -f $tmpfile $tmpfile2 else - less -RisW $tmpfile && rm -f $tmpfile $tmpfile2 + less -RisW $tmpfile2 && rm -f $tmpfile $tmpfile2 fi }