CONFIG_FILE="${FLUX_CONFIG:-./flux.yaml}"
TASK=$1
echo "🚀 Flux v0.0.4 - Task Runner"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
if [ ! -f "$CONFIG_FILE" ]; then
echo "❌ Hata: Config dosyası bulunamadı: $CONFIG_FILE"
exit 1
fi
list_tasks() {
grep -E "^[a-zA-Z_][a-zA-Z0-9_-]*:$" "$CONFIG_FILE" | sed 's/://g' | sed 's/^/ • /'
}
if [ -z "$TASK" ] || [ "$TASK" = "help" ] || [ "$TASK" = "--help" ] || [ "$TASK" = "-h" ]; then
echo "Kullanım: flux <task>"
echo ""
echo "Mevcut task'ler:"
list_tasks
exit 0
fi
if ! grep -qE "^${TASK}:$" "$CONFIG_FILE"; then
echo "❌ Hata: Bilinmeyen task '$TASK'"
echo ""
echo "Mevcut task'ler:"
list_tasks
exit 1
fi
COMMAND=$(sed -n "/^${TASK}:$/,/^[a-zA-Z_]/p" "$CONFIG_FILE" | grep "command:" | head -1 | sed 's/.*command:[ ]*["]*\([^"]*\)["]*/\1/' | sed 's/^[ ]*//')
DESCRIPTION=$(sed -n "/^${TASK}:$/,/^[a-zA-Z_]/p" "$CONFIG_FILE" | grep "description:" | head -1 | sed 's/.*description:[ ]*["]*\([^"]*\)["]*/\1/' | sed 's/^[ ]*//')
echo "📝 Task: $TASK"
echo "📖 Açıklama: ${DESCRIPTION:-'(açıklama yok)'}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "→ Running: $COMMAND"
if [ -z "$COMMAND" ]; then
echo "❌ Hata: Task için command tanımlanmamış"
exit 1
fi
eval "$COMMAND"
LAST_EXIT=$?
echo ""
if [ $LAST_EXIT -eq 0 ]; then
echo "✅ Task başarıyla tamamlandı: $TASK"
else
echo "❌ Task başarısız oldu: $TASK (exit code: $LAST_EXIT)"
exit $LAST_EXIT
fi