Shell: Develop as You Go!

Seperti hari kebanyakan, kami belajar dan terus belajar bagaimana menangani suatu masalah saat bekerja.


Adakah yang selalu mengerjakan hal yang sama namun dengan studi kasus yang berbeda?

Pada dasarnya setiap permasalahan dapat diselesaikan dengan konsep yang sama. Repetitive and Simply understandable. Namun, ada kalanya kita menemukan suatu kasus yang terlihat berbeda meskipun mereka sebenarnya mengalami metamorfosis dari starting point yang sama. Mari kita bahas secara bodo amat.

Hari ini sedang bingung mengerjakan templating untuk sebuah static site generator. Ada dua jenis source  code antara .jsx atau .js dan .md. Semua dibutuhkan untuk menghasilkan satu halaman .html yang didalamnya terdapat inline style. Meskipun pada awalnya mereka memiliki dependensi terhadap stylesheet lain dalam bentuk .css.

Permasalahan yang aku hadapi adalah tidak adanya suatu dokumentasi. Apa yang harus aku lakukan? Format file sumber entah dengan Prettify atau Beautify. Baca line by line kode untuk memahami fungsinya. Terapkan di boilerplate html. Repeat and keep practicing. Stupidly that was a dumb thing but effective.

Memang ada yang lebih smart? Mungkin dengan sebuah aplikasi untuk membantu pekerjaan kita semua hal aku sebutkan di atas bisa lebih mudah. Linux memberi kemudahan dengan aplikasi yang fungsinya fokus pada satu hal dan itu saja yang dapat dikerjakan darinya. Dengan sebuah tanda |, >, <, !, &&, [, dan ] segalanya menjadi lebih mudah. Aplikasi ini bisa saja grep, sed, atau bahkan ls. Mari bermain kombinasi ini dan berulang kali melakukan pengembangan untuk menjadikan pekerjaan kecil itu otomatis.



Contoh pertama:


grep -rl 'string-1' ./src/dir | xargs sed -i 's/string-2/string-2-wannabe/g' 
# string-1: yang dicari dalam suatu file
# ./src/dir: direktori yang tempat file yang dicari string-nya
# string-2: yang akan diganti dalam suatu file
# string-2-wannabe: yang akan menggantikan string-2 dalam suatu file



Contoh kedua:


ls -1 src/dir/ | xargs -I % mkdir '%' 
# src/dir/: direktori yang tempat file yang dicari string-nya
# xargs: input untuk perintah mkdir
# %: yang akan menggantikan nama direktori yang dibuat