Terminal aracılığı ile işlerimizi otomatize eden scriptler yazabilir. Bu scriptlerin kullanıcı ile etkileşime girmesi gerekebilir. Örneğin, işlem ve yetkilendirme için parola istemek veya herhangi bir metin girişi istemek.
Bu durumda kullanıcı terminal üzerinden istenilen bilgiyi girebilir. Fakat terminal üzerinden bilgi girişi yapmak son kullanıcı için kafa karıştırıcı olabilir.
Kullanıcı ile etkileşime girilen bu noktada bir arayüz (GUI) üzerinden bilgi girişi alsak ve sonrasında scriptimiz otomatize ettiğimiz işi yapmaya devam etse diye düşünürken, kısa bir araştırma sonucunda aşağıda paylaştığım pencere görüntüsünü elde edebileceğim osascript ile karşılaştım.
Mac'te osascript ile kullanıcıdan input almak.
set dialogTitle to "PencereBasligi"
set titledialog to display dialog "Açıklama: " default answer "" with answer buttons {"İptal", "Tamam"} default button "Tamam" with title dialogTitle
set buttonPressed to button returned of titledialog
set dialogResult to text returned of titledialog
if buttonPressed is "İptal" then
error "Kullanıcı İptal etti."
else
dialogResult
end if
EOF
)
Artık user_input değişkenini kontrol ederek kodu hayatına devam ettirebiliriz.
Düz bir metin girişini veya parolayı bu şekilde kullanıcıdan temin edebiliriz fakat parolasını yazdığı zaman ekranda okunabileceği için bu tip giriş parola güvenliğini tehlikeye düşürecektir. Bu kabul edilebilir bir durum değil. Bu yüzen kullanıcıdan parolasını girmesi için gönderdiğimiz osascripte “hidden” parametresini eklememiz gerekiyor. Parametre ekli haldeki osascripti yine aşağıda paylaşıyorum.
set dialogTitle to "Pencere Basligi"
set passwordDialog to display dialog "Parolanızı girin:" default answer "" with hidden answer buttons {"İptal", "Tamam"} default button "Tamam" with title dialogTitle
set buttonPressed to button returned of passwordDialog
set passwordResult to text returned of passwordDialog
if buttonPressed is "İptal" then
error "Kullanıcı İptal etti."
else
passwordResult
end if
EOF
)
Umarım faydalı olur.
Scriptleri örnek amaçlı paylaşıyorum. Olası güvenlik açıkları ve ya kod hatalarından doğabilecek sorunların sorumluluğu tamamen kullanıcıya aittir.
Hiç yorum yok:
Yorum Gönder