Menuju 1.3.15: tab completion

Versi 1.3.15 yang akan dirilis beberapa minggu lagi menghadirkan beberapa fitur baru. Tiap posting dari seri “Menuju 1.3.15″ akan membahas satu dari fitur-fitur ini. Pada posting kali ini: tab completion di shell bash.

Sesuai tradisi, Spanel adalah control panel yang ramah terhadap admin dan mode command-line/shell. Versi 1.3.15 meneruskan tradisi ini dengan menghadirkan fitur tab completion bagi perintah utama “spanel” untuk meningkatkan kenyamanan dan kecepatan bekerja di shell. Tab completion adalah fitur di shell yang memungkinkan kita melengkapi nama file/direktori/perintah/dll dengan menekan tombol Tab. Mari kita lihat apa saja tab completion yang tersedia:

Melengkapi subcommand

# spanel <tab>

akan menampilkan daftar subperintah Spanel yang tersedia (contohnya: api, list-accounts, dsb; saat ini jumlahnya ada sekitar 150). Catatan: bergantung pada setting bash Anda (set show-all-if-ambiguous On/Off di ~/.inputrc), tombol Tab bisa harus ditekan dua kali atau cukup satu kali saja. Pada contoh di bawah notasi <tab> hanya ditulis sekali.

Jika sudah ada kata yang diketik sebelum menekan Tab:

# spanel get-<tab>

maka bash hanya akan menampilkan daftar subperintah yang diawali kata tersebut (dalam hal ini “get-”, contohnya “get-account-info”, “get-accounts-count”, dsb).

Melengkapi opsi

Jika Anda mengetik “-” (minus) dulu, maka Spanel beranggapan Anda menginginkan melengkapi opsi dan akan menampilkan pilihan semua opsi yang tersedia untuk “spanel” atau salah satu subperintahnya. Contoh:

# spanel -<tab>

akan menampilkan daftar opsi umum perintah “spanel”, yaitu -h, -?, –help, -l, –list, -v, –version, dsb.

# spanel create-account -<tab>

akan menampilkan daftar opsi untuk subperintah create-account, yaitu: –account, –domain, –email, –plan, dsb.

Melengkapi nilai opsi

Tiap opsi dapat mengandung nilai yang berbeda-beda. Contohnya, opsi –account diisi dengan daftar akun hosting yang ada. Opsi –plan dengan daftar plan hosting yang ada, –site dengan daftar situs/subdomain, dsb. Spanel dapat melengkapi daftar nilai sesuai jenis opsinya. Contoh:

# spanel delete-account --account <tab>
# spanel delete-account <tab>; # sama dengan di atas, karena --account dapat disebutkan sebagai argumen pertama

akan melengkapi –account dengan daftar pilihan nama akun yang terdapat di server.

Bahkan:

# spanel suspend-account <tab>

hanya akan melengkapi dengan daftar akun yang tidak sedang tersuspensi. Sementara:

# spanel unsuspend-account <tab>

hanya akan melengkapi dengan daftar akun yang sedang tersuspensi.

PS: Terima kasih kepada Bang Endrik yang menginspirasi pembuatan fitur tab completion ini.

Categories: Pengembangan

Comments (1)

Leave a Reply