В настоящее время я работаю над игрой на базе небольшого терминала, вроде старого доброго MUD, написанного на C #.Поскольку я размещаю его на Googlecode, я использовал внешний .sh-Script, чтобы сделать svn up
, если проект существует, и svn checkout
, если его нет.Моя цель - включить SVN непосредственно в мой исполняемый файл, чтобы сделать его полностью независимым от платформы (см. Моно).Я уже гуглил такие общие вещи, как «C # SVN», и он всегда перенаправлял меня на «SharpSVN».Жаль, что внутри нет источника, только несколько .dll.
Теперь, что я хотел сделать (и спросить, возможно ли это в любом случае):
- Запустить приложение
- Проверьте, доступна ли более новая ревизия
- Выполните
svn up
- Скомпилируйте
- Запустите новый исполняемый файл, если номера ревизий не равны тем, которые были в прошлый раз (aka. более новая версия была построена)
Я сильно сомневаюсь, можно ли запустить приложение после выхода, но вы наверняка знаете больше меня;)
РЕДАКТИРОВАТЬ: //
Вот .sh-скрипт, который я выполнял раньше / выполняется в настоящее время:
#!/bin/bash
if [ $# -eq 0 ]; then
if [ ! -d "$HOME/csdungeon" ]; then
echo "Which version would you like to download? (G)erman / (E)nglish"
read getinput
case "$getinput" in
G|g) svn checkout http://c-sharp-dungeon.googlecode.com/svn/branches/translations/german/ $HOME/csdungeon
;;
E|e) svn checkout http://c-sharp-dungeon.googlecode.com/svn/trunk $HOME/csdungeon
;;
*) echo "No correct localisazion selected."
echo "Downloading english version now:"
svn checkout http://c-sharp-dungeon.googlecode.com/svn/trunk $HOME/csdungeon
;;
esac
else
cd $HOME/csdungeon
svn up
rm $HOME/csdungeon/c-sharp-dungeon.exe
fi
gmcs -out:$HOME/csdungeon/c-sharp-dungeon.exe $HOME/csdungeon/*.cs
mono $HOME/csdungeon/c-sharp-dungeon.exe
fi
if [ $# -ge 1 ]; then
if [ ! -d "$HOME/csdungeon" ]; then
echo "Which version would you like to download? (G)erman / (E)nglish"
read getinput
case "$getinput" in
G|g) svn checkout https://c-sharp-dungeon.googlecode.com/svn/branches/translations/german/ $HOME/csdungeon --username $1
;;
E|e) svn checkout https://c-sharp-dungeon.googlecode.com/svn/trunk $HOME/csdungeon --username $1
;;
*) echo "No correct localisazion selected."
echo "Downloading english version now:"
svn checkout https://c-sharp-dungeon.googlecode.com/svn/trunk $HOME/csdungeon --username $1
;;
esac
else
cd $HOME/csdungeon
svn up
rm $HOME/csdungeon/c-sharp-dungeon.exe
fi
gmcs -out:$HOME/csdungeon/c-sharp-dungeon.exe $HOME/csdungeon/*.cs
mono $HOME/csdungeon/c-sharp-dungeon.exe
fi