Назад | Перейти на главную страницу

Перехватчик пост-фиксации Bash SVN

У меня есть рабочий bash-скрипт после фиксации, который синхронизирует экземпляр Trac с последней версией для фиксации SVN.

#!/bin/sh

TRAC="/var/trac/"

REPOS="$1"
REV="$2"

if [[ "$REPOS" = "*TechReader*"]]; then trac-admin $TRAC"techreader" changeset added $REPOS $REV; fi
if [[ "$REPOS" = "*InteractEnglish*"]]; then trac-admin $TRAC"interactenglish" changeset added $REPOS $REV; fi

trac-admin $TRAC"egloo" changeset added $REPOS $REV

Финал trac-admin call запускает и обновляет внутренний экземпляр Trac по желанию, но операторы if, похоже, не запускают обновления для наших клиентских экземпляров Trac.

Команды для синхронизации одинаковы, что-то не так с условиями?

Немного повозившись, я смог заставить это работать правильно. Обратите внимание, я заменил ваш trac-admin звонки с простыми echos для тестирования.

#!/bin/bash

TRAC="/var/trac/"

REPOS="$1"
REV="$2"

if [[ "$REPOS" == *TechReader* ]]; then echo "first IF" $REPOS $REV; fi
if [[ "$REPOS" == *InteractEnglish* ]]; then echo "second IF" $REPOS $REV; fi

echo "done";

Внесенные мной изменения

  • измените bin / sh на bin / bash
  • добавить пробел перед]]
  • убрать кавычки вокруг вторых аргументов