diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/article | 143 | ||||
-rwxr-xr-x | bin/pb | 175 | ||||
-rwxr-xr-x | bin/tmp | 74 |
3 files changed, 0 insertions, 392 deletions
diff --git a/bin/article b/bin/article deleted file mode 100755 index a6ce748..0000000 --- a/bin/article +++ /dev/null @@ -1,143 +0,0 @@ -#!/bin/sh -set -eu - -usage() { - cat <<-'EOF' - Usage: - article - article -h - EOF -} - -help() { - cat <<-'EOF' - - - Options: - -h, --help show this message - - - Examples: - - FIXME: - - $ FIXME - $0 til 'I just learned this' - $0 article 'My example article title' - EOF -} - - - - -TYPE="${1:-}" -[ -z "$TYPE" ] && { - missing 'TYPE' - usage - exit 2 -} - -EXTRA='' -case "$TYPE" in - article|til) - LAYOUT=post - DIR="_${TYPE}s" - EXT=md - ;; - podcast|screencast) - LAYOUT=post - DIR="_${TYPE}s" - EXT=md - EXTRA=" -$TYPE: true -" - ;; - slides) - LAYOUT=slides - DIR=_slides - EXT=slides - ;; - *) - red "Invalid type '$TYPE'\n" >&2 - usage - exit 2 - ;; -esac - -FULL_TITLE="${2:-}" -[ -z "$FULL_TITLE" ] && { - missing 'FULL_TITLE' - usage - exit 2 -} - -# Derived from: -# https://stackoverflow.com/questions/4009281/how-can-i-generate-url-slugs-in-perl/4009519#4009519 -slugify() { - echo "$1" | \ - tr '[:upper:]' '[:lower:]' | \ - perl -ne 'tr/\000-\177//cd; - s/[^\w\s-]//g; - s/^\s+|\s+$//g; - s/[-\s]+/-/g; - print;' -} - -WEBSITE_REPO="$HOME/dev/libre/website" -SLUG_TITLE="$(slugify "$FULL_TITLE")" -PASTE_DATE="$(date -I)" -OUT="$WEBSITE_REPO/$DIR/$PASTE_DATE-$SLUG_TITLE.$EXT" - -cd "$WEBSITE_REPO" - -if [ -f "$OUT" ]; then - exec vi "$OUT" -fi - -if [ "$LAYOUT" = 'slides' ]; then - ARTICLE="$($0 article "$FULL_TITLE")" - cat<<EOF > "$OUT" ---- - -title: $FULL_TITLE - -date: $PASTE_DATE - -layout: $LAYOUT - -lang: en - -ref: $SLUG_TITLE - -article: $ARTICLE -$EXTRA ---- - ---- - -## Thank you! - -References: - -1. FIXME -2. FIXME -EOF -else - cat <<EOF > "$OUT" ---- - -title: $FULL_TITLE - -date: $PASTE_DATE - -layout: $LAYOUT - -lang: en - -ref: $SLUG_TITLE - ---- -EOF -fi - -vi "$OUT" @@ -1,175 +0,0 @@ -#!/bin/sh -set -eu - - -WEBSITE_DIR=~/dev/libre/website - - -usage() { - cat <<-'EOF' - Usage: - pb -t TITLE [-l LANGUAGE] [-s SLUG] - pg -h - EOF -} - -help() { - cat <<-'EOF' - - Options: - -t TITLE the title of the snippet - -l LANGUAGE the programming language of the snippet - -s SLUG the URL slug of the snippet - - Examples: - - FIXME: - - $ FIXME - EOF -} - - -slugify() { - iconv -ct ASCII//TRANSLIT | - tr '[:upper:]' '[:lower:]' | - sed -e 's/[^a-z0-9]/-/g' \ - -e 's/--*/-/g' \ - -e 's/^-//' \ - -e 's/-$//' -} - -prompt() { - printf '%s [Y/n]: ' "$1" - read -r yesno - if [ "$yesno" = 'n' ] || [ "$yesno" = 'N' ]; then - return 1 - else - return 0 - fi -} - -outname() { - DATE=$1 - SLUG=$2 - N="${3:-0}" - if [ "$N" = 0 ]; then - SUFFIX='' - else - SUFFIX="-$N" - fi - F="_pastebins/$DATE-$SLUG$SUFFIX.md" - if [ -e "$F" ]; then - outname "$DATE" "$SLUG" $((N + 1)) - else - # FIXME - eval "SLUG=$SLUG$SUFFIX" - printf '%s' "$F" - fi -} - -url() { - DATE="$1" - SLUG="$2" - printf 'https://%s/pastebin/%s/%s.html' \ - "$(make -s fqdn)" \ - "$(echo "$DATE" | tr '-' '/')" \ - "$SLUG" -} - - -for flag in "$@"; do - case "$flag" in - --) - break - ;; - --help) - usage - help - exit - ;; - *) - ;; - esac -done - -while getopts 't:l:s:h' flag; do - case "$flag" in - t) - TITLE="$OPTARG" - ;; - l) - LANGUAGE="$OPTARG" - ;; - s) - SLUG="$OPTARG" - ;; - h) - usage - help - exit - ;; - *) - usage >&2 - exit 2 - ;; - esac -done - -assert_arg() { - if [ -z "$1" ]; then - { - printf 'Missing %s.\n' "$2" - printf '\n' - usage - } >&2 - exit 2 - fi -} - -cd "$WEBSITE_DIR" - -assert_arg "${TITLE:-}" '-t TITLE' -LANGUAGE="${LANGUAGE:-}" -DATE="$(date '+%Y-%m-%d')" -SLUG="${SLUG:-$(echo "$TITLE" | slugify)}" -OUT="$(outname "$DATE" "$SLUG")" -URL="$(url "$DATE" "$SLUG")" - -# shellcheck disable=2064 -trap "rm -f '$OUT-tmp'" EXIT -cat <<-EOF | vipe > "$OUT-tmp" - --- - - title: $TITLE - - date: $DATE - - layout: post - - lang: en - - ref: $SLUG - - --- - - \`\`\`$LANGUAGE - $(cat | sed "s|^```\$|\\\\\`\\\\\`\\\\\`|') - \`\`\` -EOF - -exec 0</dev/tty -if ! prompt 'Proceed with publishing the snippet?'; then - printf 'Aborted.\n' >&2 - exit -fi - -mv "$OUT-tmp" "$OUT" -git reset . -git add "$OUT" -git commit -m "pastebin: Auto-add $OUT" -make deploy - -open "$URL" -printf '%s' "$URL" | copy -printf 'Opened on the browser and copied URL to clipboard.\n' >&2 diff --git a/bin/tmp b/bin/tmp deleted file mode 100755 index 80cadd9..0000000 --- a/bin/tmp +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -set -eu - -usage() { - cat <<-'EOF' - Usage: - tmp FILE... - tmp -d - tmp -h - EOF -} - -help() { - cat <<-'EOF' - - Options: - -d delete the remote "tmp/" folder - -h, --help show this message - EOF -} - -for flag in "$@"; do - case "$flag" in - --) - break - ;; - --help) - usage - help - exit - ;; - *) - ;; - esac -done - -TLD='euandre.org' -REMOTE_TMP='/home/user-data/www/default/tmp' -while getopts 'dh' flag; do - case "$flag" in - d) - printf 'Deleting %s:%s...\n' "$TLD" "$REMOTE_TMP/" >&2 - ssh "$TLD" rm -rf "$REMOTE_TMP" - exit - ;; - h) - usage - help - exit - ;; - *) - exit 2 - ;; - esac -done -shift $((OPTIND - 1)) - -if [ -z "${1:-}" ]; then - usage >&2 - exit 2 -fi - -for f in "$@"; do - FILENAME="$(basename "$f")" - # shellcheck disable=2029 - ssh "$TLD" "mkdir -p '$REMOTE_TMP' && cat > '$REMOTE_TMP/$FILENAME'" < "$f" - - LINK="$(printf 'https://%s/tmp/%s' "$TLD" "$FILENAME")" - open "$LINK" - if [ $# = 1 ]; then - printf '%s' "$LINK" | copy - printf 'Copied %s to the clipboard!\n' "$LINK" >&2 - fi -done |