Скрипт обновления MSE

Вопросы программирования и использования MSEide + MSEgui.

Модератор: Модераторы

Скрипт обновления MSE

Сообщение Alexander » 24.03.2007 11:23:45

Вот написал скрипт. Когда МСЕ нет - он его скачивает,
когда есть - обновляет, затем компилирует и стрипает.
Также создаёт симлинк. Предложения по усовершенствованию
с радостью принимаются. Первые воросы такие: нужно ли что то
вроде su root или всё вручную ? Не нужно ли при создании директории
специально задавать какие либо права. Я к ужасу многих до сих пор
работаю под рутом и по этому проблем с правами нет :(

Скрипт называется mseideupdate

Код: Выделить всё
#! /bin/bash

mseroot=/usr/local/lib/mseide

ln -s $mseroot/apps/ide/mseide /usr/local/bin/mseide

mkdir -p -v $mseroot

if [ "$?" != "0" ]
then
     echo 'Create MSE root directory FAILED :('
     exit
fi

svn co https://mseide-msegui.svn.sourceforge.net/svnroot/mseide-msegui/trunk/ $mseroot

if [ "$?" != "0" ]
then
     echo 'Update from SVN FAILED :('
     exit
else
     echo 'Update from SVN OK :)'
     fpc -Fu$mseroot/lib/common/* -Fu$mseroot/lib/common/kernel/i386-linux -Xs $mseroot/apps/ide/mseide.pas
     if [ "$?" != "0" ]
     then
          echo 'Compiling error - update FAILED :('
          exit
     fi
fi

echo 'All OK :)'
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение debi12345 » 25.03.2007 01:19:54

Alexander писал(а):Вот написал скрипт. Когда МСЕ нет - он его скачивает,
когда есть - обновляет, затем компилирует и стрипает.
Также создаёт симлинк. Предложения по усовершенствованию
с радостью принимаются. Первые воросы такие: нужно ли что то
вроде su root или всё вручную ? Не нужно ли при создании директории
специально задавать какие либо права. Я к ужасу многих до сих пор
работаю под рутом и по этому проблем с правами нет :(

Спасибо ! После вылизывания можно будет засунуть с подкаталог "/tools/*".

"su" - не надо. Разработка - именно тот случай, когда нужно отказываться от рута. Исключение - "kernel". Потому что MSE* программы могут собираться (build - значит и перекомпилируя MSEgui ) любым пользователем. То есть каталогом MSE* должна владеть вся ГРУППА разработчиков, и также эта группа должна "смогти" записывать в его подкаталоги.

"svn co {from where} {what}" - это первичное скачивание ВСЕГО дерева исходников. Если таковое уже разок сделано ( отработало до конца ) - то далее нужно вызывать "svn update" из верхнего каталога этого дерева.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Alexander » 25.03.2007 17:42:40

Вторая попытка. Если надо компилировать то может не в /lib/ а в /src/ ?

И группу тоже - src. Только не уверен что без рута будет возможно сменить
группу.

Касаемо ключа со - у меня он прекрасно забрал вначале, а теперь
нормально обновляет. Не знаю уж что это за check out такой.

Код: Выделить всё
#! /bin/bash

mseroot=/usr/src/mseide

ln -s -f -n $mseroot/apps/ide/mseide /usr/local/bin/mseide

mkdir -p -v -m 02775 $mseroot

if [ "$?" != "0" ]
then
     echo 'Create MSE root directory FAILED :('
     exit
fi

chgrp src $mseroot

if [ "$?" != "0" ]
then
     echo 'Change MSE root directory group FAILED :('
     exit
fi

svn co https://mseide-msegui.svn.sourceforge.net/svnroot/mseide-msegui/trunk/ $mseroot

if [ "$?" != "0" ]
then
     echo 'Update from SVN FAILED :('
     exit
else
     echo 'Update from SVN OK :)'
     fpc -Fu$mseroot/lib/common/* -Fu$mseroot/lib/common/kernel/i386-linux -Xs $mseroot/apps/ide/mseide.pas
     if [ "$?" != "0" ]
     then
          echo 'Compiling error - update FAILED :('
          exit
     fi
fi

echo 'All OK :)'
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Alexander » 25.03.2007 22:27:12

debi12345 писал(а): то далее нужно вызывать "svn update" из верхнего каталога этого дерева.


То есть чем со хуже update ?
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Attid » 26.03.2007 15:00:28

То есть чем со хуже update ?

наверно ничем =) просто "svn up" короче чем полный путь
а вскипте это все равно.

по поводу прав: такие вот программы вроде лазаря или mse я ставлю в свою директорию и правами не заморачиваюсь.поэтому симлинки это лишнее, а расположение в разных дистрибутивах по разному.
это тогда надо в svn\на сайт наработать скрипты типа
mseideupdate_ubuntu,mseideupdate_arh . . . . .
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Alexander » 27.03.2007 14:35:52

Снова модифицировал скрипт. Убрал -Xs поставил просто strip
не знаю почему так не сработал. Добавил ключ -B его отсутствие
было упущением. Интересно будет если кто нибудь попробует его
из под пользователя.

Код: Выделить всё
#! /bin/bash

mseroot=/usr/src/mseide

ln -s -f -n $mseroot/apps/ide/mseide /usr/local/bin/mseide

mkdir -p -v -m 02775 $mseroot

if [ "$?" != "0" ]
then
     echo 'Create MSE root directory FAILED :('
     exit
fi

chgrp src $mseroot

if [ "$?" != "0" ]
then
     echo 'Change MSE root directory group FAILED :('
     exit
fi

svn co https://mseide-msegui.svn.sourceforge.net/svnroot/mseide-msegui/trunk/ $mseroot

if [ "$?" != "0" ]
then
     echo 'Update from SVN FAILED :('
     exit
else
     echo 'Update from SVN OK :)'
     fpc -Fu$mseroot/lib/common/* -Fu$mseroot/lib/common/kernel/i386-linux -B $mseroot/apps/ide/mseide.pas
     if [ "$?" != "0" ]
     then
          echo 'Compiling error - update FAILED :('
          exit
     fi
     strip $mseroot/apps/ide/mseide
fi

echo 'All OK :)'
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Attid » 27.03.2007 16:37:52

Alexander вот что будет =)
Код: Выделить всё
./update2.sh
ln: создание символьной ссылки с `/usr/local/bin/mseide' на `/at/msegui/apps/ide/mseide': Permission denied
chgrp: изменение группы для `/at/msegui': Operation not permitted
Change MSE root directory group FAILED :(


так что я все ln\mkdir\chgrp
вырезал и все работает =)



теперь по поводу развития:
повторюсь очень не хватает нормального автодополнения и справки =) та подсказка что есть например совершенно не работает с "canvas"


НОВОЕ: заметил что очень не хватает отмены по ctrl+z и сохранения по ctrl+S

список форм по ctrl+S радует, но огорчает что только открытых а не в проэкте.

еще былобы замечательно иметь Procedure List пример эксперта
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Alexander » 27.03.2007 17:31:40

Я понимаю скепсис насчёт размещения МСЕ - на своей системе
мы все руты. Но во первых МСЕ может применяться не только как
среда, но и как библиотека для программ с открытыми исходниками,
которые её используют. Во вторых неплохо и защитить МСЕ
от пользователя, лишённого прав на разработку.
Ведь Линукс многопользовательская система.

А вот где разместить, какими правами наделить и
к какой группе отнести - вопрос.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Attid » 27.03.2007 18:08:20

об этом будут заботится сборщики пакетов под свои дистры.
данный скрипт вполне хорошь, можно смело его держать в FAQ или даже на сайте mSE с название install.sh =) так как он полностью избавляет пользователя думать что и где будет находится и как потом обновлять.
только вот
Код: Выделить всё
ln -s -f -n $mseroot/apps/ide/mseide /usr/local/bin/mseide

перед компиляцией не хорошо, его может еще не быть =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Alexander » 27.03.2007 18:29:55

Да не, нормально. Это ж симлинк.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 771
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение Attid » 16.05.2007 01:09:35

на венду еще скриптик сделайте, я тему приклею. или в фак вынесу.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в MSEide + MSEgui

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

Рейтинг@Mail.ru