Sıralı komutlardan iş akışına: `.lil` karar verebilsin
Cevap her zaman “A’yı yap, sonra B, sonra C” olduğu sürece doğrusal betik yeterlidir. Bir dizinin varlığını denetlemek, yolu yeniden kullanmak, sonucu saklamak veya açık bir nedenle durmak gerektiğinde artık basit bir liste değil, iş akışı kuruyorsunuz.
İşe uyan en küçük otomasyon dilini kullanın
#lil ile başlayan dosya Core’un doğrusal çalıştırıcısını kullanır: normal komutlar sırayla yürütülür ve bu sadelik bir avantajdır. Kurulum listeleri, tekrarlanabilir tanılama ve kısa yordamlar için idealdir.
install runhelp runDeğişkenler tekrarlanan yolları anlamlı adlara dönüştürür
set root lil-playground bir yola rol verir. Sonrasında $root, $source ve $archive aynı değeri beş yerde düzenlemek yerine değerlerin ne anlama geldiğini söyler.
İyi variable isimleri betik’i portable yapar. Ortama özgü değerleri yukarıda, gizli veri’ları dışarıda tutun; birkaç açık variable, akıllı string birleştirmelerinden genelde daha iyidir.
set root lil-playground
set source lil-playground/project
set archive lil-playground/project.zipCondition bir varsayımı korumalıdır
if dir "$source" süs değildir: arşiv adımının sessizce yanlış hedef üzerinde çalışmasını önler. Conditions, yanlışlığı destructive veya kafa karıştırıcı sonuca dönüşecek varsayımların çevresinde en değerlidir.
exists, file, empty, eq, ne, ok, fail ve command koşullarını, tersine çevirmek için de not sözcüğünü destekler. Branch’leri okuyanın her yolun neden var olduğunu anlayacağı kadar kısa tutun.
if dir "$source"
stat "$source"
else
stop "Project directory is missing"
endSonraki karar çıktıya bağlıysa yakalama kullanın
capture name <command> normal lil komutunu çalıştırır ve plain sonucu variable içinde saklar. $last, $status, $cwd ve $line gibi built-in’ler yaygın execution durumu sunar.
Sırf mümkün diye her şeyi yakalama etmeyin. Küçük ve stable terminal text için yararlıdır; verinin araçlar arasında veya zaman içinde yaşaması gerekiyorsa structured file veya özel format komutları daha iyidir.
capture current pwd -s
if empty "$current"
stop "Current directory is unavailable"
endOtomasyondan önce failure’ın ne anlama geldiğine karar verin
Varsayılan stop insanın anlayacağı nedenle durmayı sağlar.
Tanımadığınız iş akışlarını önce -n ile çalıştırın. Önizleme komutları çalıştırmadan doğrular ve genişletir; -v gerçek çalıştırmada tam çıktıyı gösterir. Önizleme bürokrasi değil, otomasyonu anlaşılır tutma yöntemidir.
run workflow.lil -nrun workflow.lil -vBüyük iş akışlarını satır sayısına göre değil sorumluluğa göre bölün
İş akışı aynı değişken bağlamında
.lil şifreleme değildir: format ve integrity’yi kazara düzenlemeye karşı korur, gizliity veya authorship sağlamaz.
run -p workflow.lil workflow.packed.lilrun workflow.packed.lilOtomasyon bilinçli olarak interaktif insandan daha az yetkilidir
Etkileşimli arayüz komutları normal iş akışlarında engellenir; @command otomatik kurulum kolaylığı da
Bu sürtünme bilinçlidir. Reproducible iş akışı modül bağımlılıklarıni execution’dan önce bildirmeli; run ortasında beklenmedik şekilde kod kurmamalı, gizli veri istememeli veya terminali yok etmemelidir.
Bunu betik olarak saklayın
Bunu workflow.lil olarak kaydedin, success branch için isterseniz lil-playground/project oluşturun ve önce
set root lil-playground
set source lil-playground/project
set archive lil-playground/project.zip
if not dir "$root"
stop "lil-playground is missing"
end
if dir "$source"
capture current pwd -s
zip "$source" "$archive" -f
stat "$archive"
else
stop "Project directory is missing"
end