Du skal blot gøre disse tre ting:
- Installér bundlet i TextMate
- Tilføj din offentlige ssh-nøgle1 til
~/.ssh/authorized_keyspå den remote server, du vil kopiere dine filer til.
Hvis der er adgangskode på din nøgle, skal du tilføje den til Keychain medssh-add -K. Når det er gjort, bruger OS Xssh-agenttil at hente adgangskoden fra Keychain. - Konfigurér bundle-indstillingerne for dit projekt via bundle-menuen.
Første gang du vælger configure, bliver der oprettet en ny config-fil med forklarende kommentarer.
Bemærk, at bundlet kun fungerer i projekter, fordi vi skal bruge en mappe til vores
.tm_sync.config-fil.
Konfiguration #
For at konfigurere bundlet skal du åbne Select Bundle Item ved at trykke ^⌘T og begynde at
skrive configure. Et punkt med navnet Configure - Synchronize remote directory [rsync+ssh]
burde nu stå øverst. Vælger du det, bliver der oprettet en config-fil, som ser nogenlunde sådan ud:
# Change the configuration below to match your setup
# You have to setup ssh public key authentication in order for this
# to work, as we need to be able to copy stuff without entering a
# password everytime.
REMOTE_HOST="your.server.tld"
REMOTE_PORT="22"
REMOTE_USER="username"
REMOTE_PATH="/remote/directory"
# Here you can parse options on to rsync
# if you e.g. want to exclude files
RSYNC_OPTIONS="--exclude=.git --delete"
# Use the rsync option below with caution, as it replaces the remote
# directory with the contents of your project.
# RSYNC_OPTIONS="--delete"
# Use this option to run any command on the remote end after a
# successful copy
# REMOTE_POST_COMMAND="make && make install"Nu skal du blot tilpasse den til dine behov.
Konfiguration af ssh #
Den første halvdel af config-filen handler om ssh.
REMOTE_HOST
Den host, du vil uploade dit projekt til.REMOTE_PORT
Den port,sshbruger til at forbinde - den behøver du sjældent at ændre.REMOTE_USER
Brugernavnet på den bruger på den remote host, som skal modtage filerne.REMOTE_PATH
Den fulde sti til den mappe, dine projektfiler skal synkroniseres til med rsync. Bemærk, at mappen bliver overskrevet, og eksisterende indhold bliver fjernet, hvis du angiver2 indstillingen--delete.
Konfiguration af rsync #
Når projektet synkroniseres til den remote host, sender vi RSYNC_OPTIONS uændret videre til
rsync.
rsync -v -zar --exclude=.tm_sync.config $RSYNC_OPTIONSDet betyder, at du kan sende de kommandolinjeparametre, du vil, videre til rsync. Vil du udelade
flere filer, tilføjer du blot endnu en --exclude=file_to_exclude.txt.
Konfiguration af post-commands #
I version 1.1 tilføjede jeg muligheden for at køre en valgfri kommando på den remote host efter en vellykket rsync. Det kan du bruge til at bygge og installere eller bygge og teste din kode på den remote host.
Du skal samle alle de kommandoer, du vil køre, på én linje og kæde dem sammen med &&, sådan her:
REMOTE_POST_COMMAND="make && make test"Bemærk, at kommandoen køres i en ikke-interaktiv shell og derfor kan have et andet sæt environment variables, end hvis du logger ind på normal vis via ssh.
Download #
Du kan finde kildekoden på GitHub eller bare downloade bundlet her.
-
Du kan læse mere om opsætning af ssh-nøgler i denne fine guide på github.com. ↩︎
-
Du bør altid bruge
--deletefor at sikre, at koden på den remote host er den samme som den kode, du ser i TextMate. ↩︎