Comando de script bzr

2

Alguém pode me empurrar na direção certa para usar um script shell ou Python para criar um script para simplificar o envio de uma ramificação bzr para o launchpad?

O processo de script seria simples:

  1. cd /directory/to/code
  2. pedir comentário de commit
  3. bzr commit - m $comment
  4. bzr push lp:~path/to/code
por user221813 03.12.2013 / 21:25

2 respostas

2

Você poderia colocar isso em um script quase como é ...

#!/bin/sh -e
cd /directory/to/code
bzr commit
bzr push

Eu omiti o -m para bzr commit intencionalmente. O Bazaar iniciará o editor de texto configurado onde você pode inseri-lo, sem necessidade de "pedir".

Também omiti lp:~path/to/code intencionalmente. Depois que você fizer um bzr push lp:~path/to/code uma vez manualmente, o Bazaar se lembrará desse local e, da próxima vez, será suficiente fazer apenas bzr push .

Deixe-me saber se você precisar de mais alguma coisa.

    
por janos 03.12.2013 / 21:51
0

Os scripts do shell são muito fáceis de começar. A primeira linha deve ser #!/bin/sh (um shebang - basta copiar e colar). Em seguida, coloque um comando por linha.

Se você quiser que o script pare se um comando falhar, adicione a linha set -e como a segunda linha.

Se você estiver depurando um script e quiser exibir os comandos que estão sendo executados antes de serem executados, adicione set -x como a segunda linha.

#!/bin/sh
set -e
cd /directory/to/code
bzr commit
bzr push lp:~path/to/code

A melhor maneira de “pedir comentários de commit” é abrir um editor para você entrar. Isso é o que o bzr commit faz.

Salve este arquivo no diretório ~/bin (crie-o se ele não existir) e conceda a ele permissões de execução ( chmod +x ~/bin/push-my-code na linha de comando).

Se você invocar este script a partir de uma linha de comando, normalmente você já estaria no diretório correto, assim você não precisaria do comando cd primeiro. Em vez de um script, nesse caso, você pode adicionar uma função ao seu .bashrc :

commit-and-push () {
  bzr commit &&
  bzr push lp:~path/to/code
}

Em seguida, digitar commit-and-push executará os dois comandos bzr commit e bzr push . O sinal && no final do primeiro comando significa que o próximo comando não é executado se o primeiro comando falhar (então, se você perceber que cometeu um erro ao digitar a entrada do changelog e cancelar o commit, nada será enviado). . Se você sempre empurra para o mesmo lugar, deixe o argumento para o comando push - só bzr commit então bzr push é suficiente.

    
por Gilles 03.12.2013 / 21:57