Como sincronizar todo o seu projeto Sublime Text com o seu servidor de desenvolvimento com uma única tecla

Se você faz toda a codificação da web em seu laptop, mas não executa uma pilha local de PHP, pode estar procurando uma maneira rápida de sincronizar seus arquivos com o servidor de desenvolvimento. Bem, meus amigos, não procure mais do que rsync . Além de ser rápido e seguro, você pode configurá-lo para ser uma ferramenta de construção no Sublime Text 2. Veja como configurar isso:

  1. Selecione a opção de menu FerramentasCompilar Sistema  → Novo Sistema de Compilação… .

    Cenário

  2. Uma nova janela aparecerá com um modelo em branco para seu novo sistema de compilação. Esta é a minha aparência:

    {
    "cmd": ["./devsync", "${project_base_name}"],
    "working_dir": "/Users/dhilowitz/code/"
    }

    Como você pode ver, não executo o rsync diretamente, mas aponto o Sublime Text para um script de shell chamado devsync que reside em meu diretório ~ / code . Eu tenho este arquivo salvo como devsync.sublime-build .

  3. Finalmente, aqui está a aparência do script ~ / code / devsync:

    #!/bin/bash

    if test -z "$1"
    then
    echo
    "Missing folder name argument."
    else
    RSYNC_TO
    ="user@adornomedia.com:/mnt/www/$1/"
    echo
    "Syncing from `pwd`/$1 to $RSYNC_TO"
    rsync
    -avz --delete --exclude '.git' -e ssh ./$1/ $RSYNC_TO
    fi

É isso aí! Claro, sua configuração de desenvolvimento provavelmente não é idêntica à minha, então você terá que brincar para que as coisas funcionem corretamente. O rsync pode ser uma coisa complicada de fazer funcionar se você não tiver experiência com ele. Você pode querer fazer algumas tentativas e erros na linha de comando antes de mover seus comandos para o script de shell. Deve-se notar que é possível invocar o rsync diretamente do Sublime Text (ou seja, sem um script de shell). Também é possível configurá-lo por projeto para que você use configurações diferentes dependendo do projeto com o qual está trabalhando. Aqui está um exemplo de arquivo de projeto que invoca rsync diretamente:

{
"folders":
[
{
"path": "."
}
],
"build_systems":
[
{
"name": "rsync",
"cmd": [
"rsync",
"-avz",
"--delete",
"--exclude",
"'.git'",
"-e",
"ssh",
"./site/",
"user@fakesite.com:/var/www/"
]
}
]
}

Boa sorte!

–Dave