robsite

In bash

Screenshot Upload via Drag & Drop from Skitch to Dock with Copy to Clipboard with Platypus for macOS

Damit währen die SEO™ Keywords abgedeckt.

Ich mag Skitch, um Screenshots schnell mit coolen Pfeilen zu verzieren und mit einem Klick auf meinen Server hochzuladen.

Skitch unterstützt leider keinen Upload per SSH-Key.

Ein bash-Script, das Dateien auf den eigenen Server hochlädt und die URL in die Zwischenablage kopiert wäre zwar äußerst cool, hat aber kein Dock-Icon, auf das man das Bild ziehen könnte, ähnlich wie Skitch das ermöglicht.

Die Lösung: Platypus. Nimm ein bash-Script und bau dir daraus eine simple GUI-Anwendung, Dateien per Drag&Drop, lad sie hoch.

Kopieren Sie dieses Script:

#!/bin/bash

# Upload files via SCP, copy URL to clipboard
# For use with Platypus on macOS

# insert yours:
SERVER_HOST="111.222.333.444"
SERVER_PORT="22"
SERVER_USER="user"
SERVER_PATH="/bla/etc/example.com/screenshots/"
SERVER_URL="https://example.com/screenshots/"
SERVER_PERMISSIONS="644"

# thx to Orwellophile https://stackoverflow.com/a/10660730/1191375
rawurlencode() {
  local string="${1}"
  local strlen=${#string}
  local encoded=""
  local pos c o

  for (( pos=0 ; pos<strlen ; pos++ )); do
     c=${string:$pos:1}
     case "$c" in
        [-_.~a-zA-Z0-9] ) o="${c}" ;;
        * )               printf -v o '%%%02x' "'$c"
     esac
     encoded+="${o}"
  done
  echo "${encoded}"    # You can either set a return variable (FASTER) 
  REPLY="${encoded}"   #+or echo the result (EASIER)... or both... :p
}

if [ ! -e "$1" ]
    then
    echo "Drop a file on the icon to upload it."
    exit
fi

FILE_PATH="$1"
FILE_NAME=$(basename "$FILE_PATH")

# skitch hack. expand for your language
if [ "$FILE_NAME" == "Leer.png" ] || [ "$FILE_NAME" == "Empty.png" ] ; then
  FILE_NAME="screenshot.png"
fi
if [ "$FILE_NAME" == "Leer.jpg" ] || [ "$FILE_NAME" == "Empty.jpg" ] ; then
  FILE_NAME="screenshot.jpg"
fi

TIMESTAMP=$(date +"%s")
UPLOAD_FILENAME="${TIMESTAMP}-${FILE_NAME}"
ENCODED_UPLOAD_FILENAME=$(rawurlencode "$UPLOAD_FILENAME")

echo "Uploading ${FILE_NAME} to ${SERVER_HOST}"
scp -P $SERVER_PORT "$FILE_PATH" "$SERVER_USER@$SERVER_HOST:'${SERVER_PATH}${UPLOAD_FILENAME}'"

echo "Setting permissions to ${SERVER_PERMISSIONS}"
ssh -p $SERVER_PORT $SERVER_USER@$SERVER_HOST chmod "'${SERVER_PERMISSIONS} ${SERVER_PATH}${UPLOAD_FILENAME}'"

echo "Done"
echo " "
echo "${SERVER_URL}${ENCODED_UPLOAD_FILENAME}"
echo "${SERVER_URL}${ENCODED_UPLOAD_FILENAME}" | pbcopy

Einfügen Sie es in Platypus mit Accepts dropped files:

Skitch wurde wohl von Evernote gekauft.
Wer eine Alternativen kennt, mit ähnlich coolen Pfeilen, immer her damit.

· bash, cool, macOS, Platypus ·
Mastodon