Coffeescript Cakefile - Массив параметров командной строки - PullRequest
4 голосов
/ 05 декабря 2011

Можно ли передать несколько аргументов cmdline в Cakefile и записать эти значения в массив?Например, что-то вроде этого:

option '', '--compilation-level [LEVEL]', 'Description...'
task "build", "compile js", (options)->
    compilationLevels = options['compilation-level'] || ['DEFAULT']
    if compilationLevels.length >= 2
        console.log 'multiple compiles'
    else
        console.log 'just one compile'

Затем запустите его с / cake --compilation-level ADVANCED_OPTIMIZATIONS --compilation-level SIMPLE_OPTIMIZATIONS build

Если это невозможно, то предложения по наиболее оптимальному способу достижения этой цели будут с благодарностью приняты :)

1 Ответ

2 голосов
/ 06 декабря 2011

Да: Cake работает на CoffeeScript OptionParser , который переносится из одноименной утилиты Ruby.Если вы будете искать в источнике isList, вы увидите, что параметр можно использовать несколько раз для создания массива, если (и только если) регулярное выражение

OPTIONAL   = /\[(\w+(\*?))\]/

полностью соответствует длинному флагуназвание.Короче говоря: Вам просто нужно добавить один символ в ваш код.

option '', '--compilation-level [LEVEL*]', 'Description...'

Это * имеет все значение!:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...