Go OS/Exec Paketi ve WP-CLI İle Shell Command Örneği

Go programlama dili ile ilgili temel örneklerle devam ediyorum.

AA

Özellikle wp-cli, grav, craft ve digitalocean doctl komut satırı arayüzü işlemlerinden bahsederken süreci otomatize edecek, farklı fikirler oluşturabilecek bir bilgi sunmak istiyordum, bu noktada go os/exec paketinin oldukça uygun olacağında karar kıldım. Özellikle WP-CLI Nasıl Kullanılır? başlıklı yazının sonunda yer verdiğim WPH_CLI_Command extend işlemi ile birleştirildiğinde WordPress MU gibi pek çok site, bu siteler dahilinde plugin ve theme özelleştirmeleri hem pratik hem de eğlenceli bir şekilde yönetilebilir.

Örnek bir kodu aşağıda iletiyorum.

package main
import "os/exec"

func main() {
        app := "wp" #/usr/local/bin/wp
        arg0 := "showPosts"
        arg1 := "lastPosts"
        arg2 := "--count=50"

        cmd := exec.Command(app, arg0, arg1, arg2)
        stdout, err := cmd.Output()

        if err != nil {
                println(err.Error())
                return
        }
        print(string(stdout))
}

Kod içerisinde ana fonksiyonda yer alan app (wp veya /usr/local/bin/wp) komutumuzu (doctl, wp, grav vb.) tanımlamakta. Ardından gelen argümanlar (arg0, arg1…) komutumuzun gerçekleştireceği işlemleri ve biçimlerini ifade etmekte.

Örnek olarak ele aldığım argümanlar WP-CLI Nasıl Kullanılır? yazımdaki son yayınlanan, plugin olarak tanımlanmış bir WPH_CLI_Command ile yazıların listelenmesi görevini yürütmekte. birkaç satır kod, kontroller ve ek fonksiyonlarla pek çok görev (WordPress siteleri oluşturmak, güncellemek, içerikler ve kullanıcılar oluşturmak, plugin ve temalar yüklemek, import/export işlemleri gerçekleştirmek vb.) yürütmek mümkün.