Synkronisera din USB-pinne med hjälp av hazel

Bakgrund


Jag har som många andra ett USB-minne som jag använder som flyttbar disk för mina dokument och skolarbeten. Problemet är att när jag gjort något på min dator vill jag på ett smidigt sätt flytta över det på mitt USB-minne. De dokument jag sedan arbetat på i skolan och sparat på minnet vill jag sen ha tillbaka till min dator. Problemet löses med ett script som körs så fort mitt USB minne matas in i datorn, och det är här hazel kommer in i bilden.

Övergripande


Hazel kollar när något händer i katalogen /Volumes och när mitt minne som heter "Lexel" dyker upp körs ett script. Scriptet använder unison som synkroniserar mina kataloger. När synkroniseringen är klar poppar en dialogruta som frågar om jag vill mata ut Lexar upp. Jag kan på så sätt föra in USB minnet, synkronisera och sedan med ett musklick mata ut minnet igen.

Guide


Vi börjar med scriptet:

    1: #!/bin/bash
    2:
    3: #new unison code
    4: /usr/bin/unison /Users/diger/Skola /Volumes/Lexar/Skola -ui text -silent -perms 0 -rsrc true -prefer /Users/diger/Skola -times
    5:
    6: /usr/bin/unison /Users/diger/Documents /Volumes/Lexar/Dokument -ui text -silent -perms 0 -rsrc true -prefer /Users/diger/Documents -times
    7:
    8: retval=`/usr/local/bin/CocoaDialog.app/Contents/MacOS/CocoaDialog yesno-msgbox --no-cancel --title "Unmount lexar" --text "Should I unmount lexar?" --float --icon finder --informative-text "The automatic sync is now complete. Should I proceed with unmount?"`
    9:
   10: if [ "$retval" == "1" ]; then
   11:     /usr/sbin/diskutil eject /Volumes/Lexar
   12: fi


Jag har valt att vara hård mot synkroniseringen, är där en konflikt kommer kopian på min dator att skriva över den på minnet.
Den just nu mest intressanta funktionen i scriptet är rad 8 där jag kastar upp en dialogruta som frågar om minnet ska matas ut. Är det så att jag bara ville synkronisera katalogerna besparar jag mig att behöva mata ut minnet via FInder eller från skrivbordet.

Det är ett par saker som man behöver tänka på om man ska köra mitt script:
  1. Applikationen CocoaDialog har jag lagt i /usr/local/bin men det är upp till var och en att lägga den vart som.
  2. Scriptet är väldigt enkelt men fungerar för mig.

Rapid weaver bråkar med mig så jag slutar guiden här....

Kom gärna med feedback via mail.