Grav CLI Nedir? Nasıl Kullanılır?

Kolay bir şekilde kurulumunu yapabileceğimiz ve hatta birkaç dakika içerisinde web sitesi oluşturmanın ötesinde online ürün ve hizmet satışı da yapabileceğimiz Grav uygulamasından pek çok bağlamda bahsettim.

AA

Bu yazıda ise Grav uygulamasını kullanırken sıklıkla faydalandığımız komut satırı arabiriminden (command-line interface / CLI) bahsederek Grav kurulumu ve temel kullanım sürecini tamamlamış olacağım. İlerleyen süreçlerde ise yayınlanacak yazıların merkezinde Grav System API başta olmak üzere etkileşimli işlemler yer alacak1. O halde ilk olarak kurulum sürecinin de bir parçası olan Grav Package Manager (GPM)‘a bakalım.

Grav CLI

Grav uygulaması ön bellek temizleme, yedekleme ve daha fazlasını kolay ve hızlı bir şekilde gerçekleştirmeye yarayan, son derece kullanışlı yerleşik (bin/grav) bir komut satırı arabirimi (command-line interface / CLI) ile birlikte gelmektedir. CLI‘ye erişim sağlamak ise oldukça kolaydır, ihtiyacınız olan bir terminal uygulaması ve temel komut satırı bilgisi. Elbette pek çok işlemi terminal üzerinden pratik bir şekilde belirli komutlarla yürütmeniz mümkün, ek olarak bu süreci otomatize edebileceğiniz ve günlük olarak çalıştırabileceğiniz cronjobs ile yürütebilirsiniz. Tabi, bu tür işlemler için öncelikle hangi komutların ne gibi yetkinliklere sahip olduklarını bilmeliyiz2. O halde hızlıca ilgili tüm komutları listeleyelim:

bin/grav list
Kullanım:
  Komut [opsiyon] [argüman]

Opsiyonlar:
  -h, --help            Yardım mesajlarını görüntüler
  -q, --quiet           Çıktı olarak mesaj üretilmesini önler
  -V, --version         Uygulama versiyonunu iletir
      --ansi            ANSI çıktıyı zorlar
      --no-ansi         ANSI çıktıyı iptal eder
  -n, --no-interaction  Etkileşimli soruları durdurur
  -v|vv|vvv, --verbose  Mesajların ayrıntılarını genişletir: 1 normal çıktı, 2 daha fazla çıktı ve 3 hata ayıklama detayı

Erişilebilir komutlar:
  backup       İligli Grav kurulumunun yedeğini oluşturur
  clean        Grav kurulumlarının gereksiz dosya ve cache temizliğini yapar
  clear-cache  [clearcache] Cache temizliği yapar
  composer     Grav uygulamasının ihityaç duyduğu gereksinimleri yükler ve/veya günceller
  help         Komutlarla ilgili yardım başlıklarını listeler.
  install      Grav tarafından ihtiyaç duyulan gereksinimleri kurar. Opsiyonal olarak symbolic linkler oluşturulabilir.
  list         Komutları listeler.
  new-project  [newproject] Yeni bir Grav projesi oluşturmasını sağlar.
  sandbox      Geliştirme ve çeşitli denemeler için webroot (DigitalOcean için /var/www/html/) altında Grav kurulumu gerçekleştirir
  security     Grav kurulumuna dair güvenlik testleri gerçekleştirmeyi sağlar.

Örneğin Grav kurulumundan sonra tema yapılandırması için ön tanımlı olarak ihtiyaç duyulabilecek temaları ve eklentileri install ile hızlı bir şekilde gerçekleştirebilirsiniz.

bin/grav install

Bu komutun ardından grav-plugin-problems, grav-plugin-error, grav-plugin-markdown-notices eklentileri ve quark teması yüklenecektir. new-project ile yeni bir proje oluştmak istediğinizde ilgili yolu belirtmeniz yeterli olacaktır. Ardından dosyalar ve yapılandırma izinleri de otomatik bir şekilde gerçekleştirilecektir.

bin/grav new-project /var/www/html/grav-yeni

Yeni bir proje oluşturmak yerine var olan bir Grav kurulumunu başka bir dizine kopyalamak da isteyebilirsiniz. Bu durumda sandbox komutunu kullanabiliriz. Örneğin grav-kopya adında bir klasör oluşturup bu klasöre Grav yapılandırmamızı kopyalayalım.

bin/grav sandbox -s /var/www/html/grav-kopya

Şimdi de Grav ve SnipCart yazılarında kısaca değindiğim paket yönetisine bakalım.

Grav Tema

Grav CLI Plugin

Grav eklentileri aynı zamanda Grav CLI ile de entegre edilerek kullanılabilmekte3. Bu sayede belirli görevleri de otomatik hale getirmek mümkün hale gelmekte. bin/plugin komutunu uyguladığınızda CLI entegrasyonu sağlayan tüm eklentileri listeleyebilirsiniz.

bin/plugin

Komut uygulandıktan sonra kullanım konusunda da bilgi görüntülersiniz.

Kullanım:
  bin/plugin [slug] [komut] [argümanlar]

Örnek:
  bin/plugin error log -l 1 --trace

CLI entegrasyonu olan eklentiler:
  01. problems        bin/plugin sorunları listeler
  02. error           bin/plugin hataları listeler

İlk opsiyon daima eklenti slug değerini alır (error, login vb.), ardından eklenti tarafından sunulan işlemler gelir. Örneğin login eklentisini kullanarak kullanıcı işlemlerini komut satırı üzerinden gerçekleştirebiliriz. Yeni bir kullanıcı oluşturmayı deneyelim.

bin/plugin login new-user

Komutun uygulanmasının adından kullanıcı adı, şifre, e-posta ve benzeri bilgileri gireceğiniz adımlara ulaşabilirsiniz. Login eklentisi ile nasıl yeni kullanıcı oluşturulabileceğine dair daha detaylı bilgi için help komutunu kullanabilirsiniz.

bin/plugin login help new-user
Grav Admin

Grav Package Manager (GPM)

Grav uygulaması 0.9.3 sürümünden bu yana Grav Package Manager (GPM) ile kullanılabilmekte. Bu sayede komut satırı arabirimi üzerinden eklentiler ve temalar yönetilebilmekte. Ek olarak, Grav güncellemesi de gerçekleştirilebilmekte4. help ile kullanılabilir komutlar ve ilgili diğer detaylara ulaşmak mümkün.

bin/gpm help

Şimdi de eklenti ve temaları listeleyelim.

bin/gpm info

Temalar ve eklentiler içerisinde filtreleme yaparak daha spesifik sonuçlara ulaşabiliriz. Örneğin, admin işlemleri gerçekleştirmemizi sağlayan eklentileri ve temaları listeleyebiliriz.

bin/gpm index --filter admin

Karşılaştığımız liste içeriğinde yer alan Admin Panel (slug: admin) eklentisi hakkında detayları görüntüleyelim.

bin/gpm info admin

Evet, bu eklenti bizim Grav kurulumumuz içerisinde içerikler üretmemizi, ayarları yapılandırmamızı, eklenti, tema ve kullanıcı işlemleri yapabilmemizi sağlayan yönetici eklentimiz.

Admin Panel [admin]

İlgili eklentiyi install ile yükleyebiliriz.

bin/gpm install admin

Evet, genel olarak Grav CLI‘nin bize sunduğu yeteneklere kısa bir şekilde değinmiş olduk. Grav için eklenti geliştirme sürecinde ayrıca detaylara değineceğim. Windows 10+ işletim sistemi ortamındaki yönergeler için ise Windows Ortamında Grav Kurulumu başlıklı yazıya göz atabilirsiniz.