osascript ile dinamik buton oluşturmak

Aslında kodlardan çok birşey anlaşılır mı bilmiyorum ben kendi iş akışımdan hızlıca bahsedeyim.

Elektronik imza için gerekli uygulamaların yüklü olup olmadığını daha sonra Usb takılımı, kart takılımı kontrol ediyor ardından gösteriyor.  Bunları yazıyor işte açıklama diye değiştirdim oraları. Ardından yüklü olmayanlar için yükle butonu çıkarıyor. Örnegin Uygulama1 Yüklü değil ise Button1=Uygualama1 Yukle seklinde Button1 değişkeni boş olmadığı için osascriptte Button1 değişkenini verdiğinde eğer yüklü değilse yükle butonu çıkmış oluyor. Osascript genel anlamda en fazla 3 butona kadar izin veriyor olması bizi sınırlıyor aslında ama olsun, benim işimi gördü fazlasıyla umarım daha çok işe yarar.

Bu scriptte terminali kullanmayı öğrenmnek isteyen insanlar için çok fazla şeyin örneği var aslında kullanıcıdan osascript ile parola alma aldığın parolayı değişkende tutma ve yükleme işleminde kullanmak.

Curl ile internetten dosya indirmek. PKG yüklemek, değişken oluşturmak kullanmak.


myvar1="";
myvar2="";
myvar3="";
function checkAPP() {
  APP2=$(ls /Applications |grep "app")
  APPSIGN=$(ls /Applications |grep "app")

  if echo "$APP" | grep -q "app"; then
    app="Yüklü"
  else
    app="Yüklü Değil"
  fi

  if echo "$APPSIGN" | grep -q "app"; then
    APPSIGN="Yüklü"
  else
    APPSIGN="Yüklü Değil"
  fi

}
function createbutton(){
  if [[ $myvar = "Yüklü Değil" ]]; then
     Button1="myvar1 Yükle"
   else
     unset Button1
  fi
  if [[ $myvar2 = "Yüklü Değil" ]]; then
     Button2="myvar2 Yükle"
   else
     unset Button2
  fi
}
function APP2() {
  password=$(osascript <<EOF
  set dialogTitle to "Parola Girişi"
  set passwordDialog to display dialog "Yükleme İşlemi için Mac Cihazınızın Parolasını 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
  )
  link="downloadlink.com/app1"
  appname="app1"
  app=$appname.pkg
  appdmg=$appname.dmg
  appdownpath=~/Downloads/$app

  # Parolayı bir değişkene atayarak sudo komutlarında kullan
  echo "$password" | sudo -S curl -S -# $link --output $appdownpath
  echo "$password" | sudo -S installer -pkg $appdownpath -target /
}
function APP() {
  password=$(osascript <<EOF
  set dialogTitle to "Parola Girişi"
  set passwordDialog to display dialog "Yükleme İşlemi için Mac Cihazınızın Parolasını 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
  )
  link="downloadlink.com/app1"
  appname="app1"
  app=$appname.pkg
  appdmg=$appname.dmg
  appdownpath=~/Downloads/$app

  # Parolayı bir değişkene atayarak sudo komutlarında kullan
  echo "$password" | sudo -S curl -S -# $link --output $appdownpath
  echo "$password" | sudo -S installer -pkg $appdownpath -target /
}
while true; do
    createbutton
    secim=$(osascript -e 'tell application "System Events" to button returned of (display alert "Istanbul BT" message "Açıklama: '$myvar1'\Açıklama: '$myvar2'\Açıklama: '$myvar3'" without icon buttons {"'$Button2'","'$Button1'","Button3"})';)
    if [[ $secim = $Button1 ]]; then
        APP2
    elif [[ $secim = "Button3" ]]; then
      sec=$(osascript -e 'tell application "System Events" to button returned of (display alert "Istanbul BT" message "Açıklama....." without icon buttons {"Çık","Sirket","Kadro"})';)
      if [[ $sec = "1" ]]; then
        if [[ $myvar2 = "Yüklü" ]]; then
           open /Applications/appname
        fi;
        open link?
        break
      elif [[ $sec = "2" ]]; then
          if [[ $myvar2 = "Yüklü" ]]; then
            open /Applications/appname
          fi;
          open link?
          break
      elif [[ $sec = "Çık" ]]; then
          break
      fi
    elif [[ $secim = $Button2 ]]; then
        APP2
    fi
done

Devamını Okumak İçin »