Как создать команду псевдонима, которая изменяет переменную среды перед выполнением фактической команды - PullRequest
1 голос
/ 19 ноября 2010

Во-первых, я извиняюсь, но это своего рода вопрос "дай мне код". Я обещаю учиться на ваших ответах, хотя! Это означает, что вы можете использовать сократовский метод , если считаете, что это необходимо.


В настоящее время я разрабатываю ( как для обслуживания, так и для создания новых ) несколько сайтов, используя Grails , и способ его работы заключается в том, что он обеспечивает оболочку командной строки для выполнения различных задач.

Это все нормально, но переключение между версиями немного неприятно, так как все это управляется одной переменной среды с именем GRAILS_HOME, которая указывает на каталог, такой как C:\grails\grails-1.2.3\.

Теперь, что бы я хотел сделать, вместо того, чтобы делать что-то вроде этого:

grails create-app MyWebApp
grails list-plugins -repository=myPluginRepo
grails install-plugin myPlugin

и затем замечает, что я использую не ту версию и что мне нужно вернуться, я бы лучше сделал

g135 create-app MyWebApp
g135 list-plugins -repository=myPluginRepo
g135 install-plugin myPlugin

, что сразу скажет мне, что я использую Grails 1.3.5.

Проблема, с которой я сталкиваюсь при создании psh-скрипта, заключается в том, что я абсолютно отстой в создании скриптов. Я попытался сделать это, но после примерно пяти загадочных сообщений об ошибках от самого psh, я решил просто попросить совета.

Бонусные баллы: Если я смогу параметризировать вызов псевдонима, чтобы указать версию ( что-то вроде g[1.3.5] other params), а затем добавить число к значению переменной среды, это было бы самым удобным решением для меня.

1 Ответ

4 голосов
/ 19 ноября 2010

Это должно сделать это:

Function PSGrails($ver)
    {
    $env:GRAILS_HOME='c:\grails\grails-{0}\' -f $ver
    grails $args
    }

Это просто короткая функция, которая устанавливает переменную и затем выполняет grails, как указано выше.

Запустите его, указав номер версии сразу после имени функции:

psgrails 1.3.5 create-app MyWebApp     
psgrails 1.3.5 list-plugins -repository=myPluginRepo     
psgrails 1.3.5 install-plugin myPlugin  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...