sttemp

Simple template manager
git clone git://git.konyahin.xyz/sttemp
Log | Files | Refs | LICENSE

commit d8cfdaa6ebeacf24c6140c181e959fe9b28c2e7a
parent f067a141e31282f2ab14c0c15564b0155409c01c
Author: Anton Konyahin <me@konyahin.xyz>
Date:   Sun, 25 Feb 2024 12:59:18 +0300

script for web notes

Diffstat:
Mdsttemp | 2--
Astnote | 22++++++++++++++++++++++
Msttemp | 64+++++++++++++++++++++++++++++++++++++++++++++++-----------------
3 files changed, 69 insertions(+), 19 deletions(-)

diff --git a/dsttemp b/dsttemp @@ -2,8 +2,6 @@ set -eu -DISPLAY=:0.0 - export STTEMP_ASK=$( cat <<'EOF' ask () { diff --git a/stnote b/stnote @@ -0,0 +1,22 @@ +#!/usr/bin/env sh + +set -eu + +export STTEMP_ASK=$( + cat <<'EOF' +ask () { + echo $(dmenu -p "Enter $1" </dev/null) +} +EOF +) + + +export BODY=$(xclip -o) + +xdotool key --clearmodifiers "Ctrl+l" +xdotool key --clearmodifiers "Ctrl+c" +export URL=$(xclip -o -selection primary) +xdotool key --clearmodifiers "Escape" + +FILE_NAME=$(date '+%Y-%m-%d-%H%M%S') +sttemp webnote >> "/home/anton/data/notes/web/$FILE_NAME.md" diff --git a/sttemp b/sttemp @@ -14,7 +14,8 @@ fill_vars () { for var in $vars do [ -z "$(printenv "$var")" ] && - eval "export $var=$(ask "$var")" + value="$(ask "$var")" && + eval "export $var=\"$value\"" done } @@ -24,39 +25,68 @@ print_templ () { print_help () { cat <<EOF -sttemp [-lhv] [template] - simple template manager +sttemp - simple template manager Usage: - -h print this help - -l print list of all templates - -v print all variables from template - template fill shell-like variables in template file and print his content. Missing environment variable will be asked on stderr. + -h Print this help + -l Print list of all templates + -v name Print all variables from template + -d dir Set directory with templates. + name Fill shell-like variables in template file and print his content. Missing environment variable will be asked on stderr. EOF exit } +[ "$#" -lt 1 ] && print_help -TEMPL_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/sttemp" -mkdir -p "$TEMPL_DIR" +while [ "$#" -gt 0 ]; do + case "$1" in + -h) + HELP=YES + shift + ;; + -l) + LIST_TEMPL=YES + shift + ;; + -v) + PRINT_VAR=YES + shift + ;; + -d) + TEMPL_DIR="$2" + shift 2 + ;; + *) + TEMPL_NAME="$1" + shift + ;; + esac +done -[ -n "${STTEMP_ASK:-}" ] && eval "$STTEMP_ASK" +[ -n "${HELP:-}" ] && print_help -[ "$#" -lt 1 ] && print_help +[ -z "${TEMPL_DIR:-}" ] && + TEMPL_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/sttemp" && + mkdir -p "$TEMPL_DIR" -case "$1" in - -h) print_help ;; - -l) ls "$TEMPL_DIR" && exit ;; - -v) PRINT_VAR=true && shift 1 ;; -esac +[ -n "${LIST_TEMPL:-}" ] && + ls "$TEMPL_DIR" && + exit -TEMPL="$TEMPL_DIR/$1" +[ -z "${TEMPL_NAME:-}" ] && + echo "You should specify template name" && + exit 1 + +TEMPL="$TEMPL_DIR/$TEMPL_NAME" [ ! -f "$TEMPL" ] && - echo "Template $1 doesn't exist in $TEMPL_DIR" >&2 && + echo "Template $TEMPL_NAME doesn't exist in $TEMPL_DIR" >&2 && exit 1 [ -n "${PRINT_VAR:-}" ] && envsubst -v "$(cat "$TEMPL")" && exit +[ -n "${STTEMP_ASK:-}" ] && eval "$STTEMP_ASK" fill_vars print_templ