MacOS Photos and AppleScript

Just about to move from Adobe Lightroom (CC) to native Apple Photo App/iCloud (but thats another story).

Unfortunately most of the old AVI videos got a wrong date during the import (not the file-creation date but the date of import). Not helpful. Fortunately Lightroom had set the date/time into the filename, so I should be able to set it from there.

In the end I spent my first night with with AppleScript – thats the outcome:

tell application "Photos"
  activate
  set imageSel to (get selection)
  if imageSel is {} then
    error "Please select some images."
  else
    repeat with im in imageSel
      tell im
        set imageFilename to filename of im as string
        set d to current date
 
        -- filename format: 20030316_160816_03498.avi
        set the year of d to text 1 thru 4 of imageFilename
        set the month of d to text 5 thru 6 of imageFilename
        set the day of d to text 7 thru 8 of imageFilename
        set the hours of d to text 10 thru 11 of imageFilename
        set the minutes of d to text 12 thru 13 of imageFilename
        set the seconds of d to text 14 thru 15 of imageFilename
 
        set the date of im to d
      end tell
    end repeat
  end if
end tell
return input

macOS: add ssh-keys to agent

Since macOS sierra the system don’t adds ssh-keys to the agent automatically anymore. Add the following ssh-config file to restore the previous behaviour:

# ~/.ssh/config

Host *
    UseKeychain yes
    AddKeysToAgent yes

after connecting to a remote shell and typing the passphrase once the key/passphrase will be remembered in the macOS keychain.

Custom routes in OpenVPN client

Um vom Server gepushte Routen zu ignorieren und nur eigene im VPN-Client zu verwenden, genügen folgende Zeilen in der openvpn.conf des Clients:

route-nopull
route 192.168.23.0 255.255.255.0

Ich nutze dies hier mit Tunnelblick auf dem Mac um bei der OpenVPN Config der Astaro wahlweise nicht den gesamten Traffic durchs VPN zu schicken.

MacOS rsync: Zeichensalat

Ähnliches Problem wir hier.

Insbesondere beim Verwenden von „–delete“ kommt die von MacOS mitgelieferte rsync-Version nicht mit Sonderzeichen klar. Daten mit Umlauten werden jedes mal gelöscht und danach erneut übertragen. Die mitgelieferte Version (2.6.9) hat noch keinen iconv-Support zum Konvertieren der Zeichensätze.

Abhilfe schafft es rsync 3.x zu installieren: Entweder selbst kompilieren oder ein Binary von z.B. hier verwenden. Rsync liegt danach unter /usr/local/bin/.

Für den Zeichensatz des Macs gibt es ein pseudo-UTF8: „UTF8-MAC“. So klappt es dann endlich mit dem rsync (hier Mac <=> Linux):

/usr/local/bin/rsync -av --delete --iconv=UTF8-MAC,UTF8 -e ssh otto@192.168.24.27:/home/otto/data/ data/