I want to create a command which appends a specific parameter only when the current time is between midnight and 6am.
Example pseudo-code:
mvn clean verify <#if isBetweenMidnightAnd6AM> -Dfindbugs.skip=false</#if>
Is it possible to build this in a single command line or do I need a shell script?
Здесь вам почти наверняка будет лучше использовать сценарий оболочки. Вы могли бы сделать это с помощью очень и очень уродливой строки вроде этой: (примечание: не отлажено / не протестировано)
mvn clean verify $( if [ ($(date +%H) -ge 0) && ($(date +%H) -le 6) ];then echo "-Dfindbugs.skip=false";fi;)
В любом случае сценарий будет намного проще просматривать. Это будет выглядеть примерно так:
if [ ($(date +%H) -ge 0) && ($(date +%H) -le 6) ]
then
mvn clean verify -Dfindbugs.skip=false
else
mvn clean verify $Your_other_opts
fi
Кроме того, со скриптом вы сможете улучшить отладку и проверку, чтобы убедиться, что он работает правильно.
Тем не менее, похоже, что это не то, что нельзя запускать вручную, поэтому вы можете пойти очень просто и выполнить задание cron, например:
0 0-6 * * * mvn clean verify -Dfindbugs.skip=false
Который запустит команду в начале часов 0 (полночь) - 6 (6 утра).