LINUX.ORG.RU

История изменений

Исправление matumba, (текущая версия) :

Есть http://cakebuild.net

После беглого просмотра сложилось впечатление, что это не совсем то. Могу ошибаться, но вот неприятные ньюансы:
1. Как и в MSBuild, расширения пишутся отдельно ( http://cakebuild.net/documentation/script-aliases/ ) - уже серьёзный минус.
2. Не совсем внятный формат конфига: с одной стороны, в нём C#-подобный chaining. С другой, пишутся какие-то лямбды с неизвестным набором функций, причём вызываемых с некорректным C# синтаксисом. Это смущает - модель должна быть либо полностью C# conform, либо иметь человеческий синтаксис. Например, такой:

TASK "EditConfig" {
    Depends "config.json"
    Source "forms/*.cs"
    AfterBuild {
        Say "Config is built"
        CopyFile "config" "distr/config"
    }
}

UTILS {
    void Say(params object[] args) {
        Console.WriteLine(args);
    }
}

AUTORUN {
    Say "Build started at "+Now
    if (arg == "all") Build "EditConfig"
}
Ну то есть ничто не мешает парсить UTILS как корректный C# код, но при этом «по-человечески» юзать его в остальном конфиге. И всё это в едином файле, который можно править на лету.

Исходная версия matumba, :

Есть http://cakebuild.net

После беглого просмотра сложилось впечатление, что это не совсем то. Могу ошибаться, но вот неприятные ньюансы:

1. Как и в MSBuild, расширения пишутся отдельно ( http://cakebuild.net/documentation/script-aliases/ ) - уже серьёзный минус.
2. Не совсем внятный формат конфига: с одной стороны, в нём C#-подобный chaining. С другой, пишутся какие-то лямбды с неизвестным набором функций, причём вызываемых с некорректным C# синтаксисом. Это смущает - модель должна быть либо полностью C# conform, либо иметь человеческий синтаксис. Например,


[code]
TASK «EditConfig» {
Depends «config.json»
Source «forms/*.cs»
AfterBuild {
Say «Config is built»
CopyFile «config» «distr/config»
}
}

UTILS {
void Say(params object[] args) {
Console.WriteLine(args);
}
}

AUTORUN {
Say «Build started at »+Now
if (arg == «all») Build «EditConfig»
}
[/code]



Ну то есть ничто не мешает парсить UTILS как корректный C# код, но при этом «по-человечески» юзать его в остальном конфиге. И всё это в едином файле, который можно править на лету.