Archive for the ‘Shell Script’ Category

How To Embedding Your Binary Files into Shell Script

Saturday, August 4th, 2012

Pada tulisan kali ini, kita akan membahas bagaimana membuat sebuah shell script yang berisi sebuah binary file. Apa sih sebenarnya yang bisa kita lakukan dengan sebuah shell script yang berisi file binary ? Hm.. sebenarnya banyak sih, dan salah satunya adalah membuat installer untuk sistem operasi GNU/Linux seperti installer milik NetBeans IDE yang mempunyai ekstensi *.sh :)

Nah untuk membantu tujuan kita diatas, kita membutuhkan bantuan sebuah shell script yaitu makeself. Untuk yang belum tahu apa itu script makeself, dibawah ini adalah deskripsi singkat tentang script makeself :

makeself.sh is a small shell script that generates a self-extractable tar.gz archive from a directory. The resulting file appears as a shell script (many of those have a .run suffix), and can be launched as is. The archive will then uncompress itself to a temporary directory and an optional arbitrary command will be executed (for example an installation script). This is pretty similar to archives generated with WinZip Self-Extractor in the Windows world. Makeself archives also include checksums for integrity self-validation (CRC and/or MD5 checksums).

Dan yang menggembirakan lagi adalah, script makeself ini sudah di test dan dapat digunakan pada beberapa sistem operasi yang kurang lebih seperti berikut :

  1. Linux (all distributions)
  2. Sun Solaris (8 and above)
  3. HP-UX (tested on 11.0 and 11i on HPPA RISC)
  4. SCO OpenUnix and OpenServer
  5. IBM AIX 5.1L
  6. MacOS X (Darwin)
  7. SGI IRIX 6.5
  8. FreeBSD
  9. UnicOS / Cray
  10. Cygwin (Windows)

Sedangkan yang sudah menggunakan script ini sebagai installer mereka adalah :

  1. Game patches and installers for Id Software games like Quake 3 for Linux or Return To Castle Wolfenstien ;
  2. All game patches released by Loki Software for the Linux version of popular games
  3. The nVidia drivers for Linux
  4. The installer for the Linux version of Google Earth
  5. The VirtualBox installers for Linux
  6. The Makeself distribution itself ;-)

Menarik bukan ? Masih tertarik bagaimana caranya menggunakan script ini untuk membuat sebuah installer sendiri ?
(more…)

Batch Rename with Shell Script

Friday, September 9th, 2011

Kemarin di tempat saya bekerja ada kejadian bagaimana caranya me-rename nama file yang mempunyai akhiran “S” menjadi “R”, masalahnya adalah semua file tersebut tidak mempunyai pattern yang sama kecuali 3 huruf di depan dan 1 huruf dibelakang yaitu huruf “S” yang harus dirubah menjadi “R” :D Contoh nama file yang akan direname kurang lebih seperti terlihat dibawah ini :

martinus@artivisi:[~]$ ls
EDW980012011S   EDW980T22011S
EDW980G32011S   EDWSUBS42011S
martinus@artivisi:[~]$

Pada kasus diatas, kita tidak bisa secara langsung melakukan kegiatan find and replace biasa. Karena ternyata huruf “S” juga terdapat ditengah-tengah nama file tersebut seperti terlihat pada tampilan diatas :( Setelah bertanya ke paman Google sebentar, akhirnya saya menemukan pattern untuk menghapus karakter terakhir dari sebuah string menggunakan command sed. Dan pattern tersebut adalah sed 's/\(.*\)./\1/' :D akhirnya setelah dikombinasikan dengan sedikit kemampuan di shell script jadilah script yang isinya adalah sebagai berikut :

Simpan script diatas dengan nama terserah (misalkan batch_rename.sh), kemudian beri akses execute dan jalankan. Jika tidak ada error, harusnya jika dijalankan akan merename semua file menjadi seperti dibawah ini :

martinus@artivisi:[~]$ ls
EDW980012011R   EDW980T22011R
EDW980G32011R   EDWSUBS42011R
martinus@artivisi:[~]$

Untuk penjelasan sed dan regex-nya, saya masih belum bisa menjelaskan :D Maklum saya juga masih belajar :D Semoga script diatas bisa berguna juga buat teman-teman yang mempunyai masalah yang sama :)

Call For Paper Programming Tutorial on SlackID Ezine

Tuesday, May 25th, 2010

Hii slacker’s, suka menulis tentang bahasa pemrograman ? Berprofesi sebagai programmer dan kebetulan menggunakan Slackware sebagai sistem operasi utama-nya ? Jika iya, apakah teman-teman mau berbagi pengalaman dengan pengguna Slackware yang lain bagaimana menyiapkan segala keperluan yang dibutuhkan agar kegiatan koding kita menjadi nyaman menggunakan Slackware ? Tidak dapat dipungkiri, menyiapkan “alat perang untuk koding” di Slackware benar-benar merupakan sebuah tantangan tersendiri :) Terutama jika ketergantungan “library” yang digunakan oleh IDE atau bahasa pemrograman-nya sendiri banyak sekali, bisa-bisa kita tidak “produktif” karena terlalu sibuk untuk menyiapkan “alat perang” dahulu :) Dan kalau sudah begini biasanya pindah ke distro yang lebih mudah :D

Untuk teman-teman ketahui, SlackID edisi ke 2 yang akan terbit mendatang akan memasukkan kategori Programming dalam rubriknya :) Nah kira-kira menurut teman-teman slacker’s sendiri, topik apa yang ingin dibahas pada Edisi ke 2 ini ?? Beberapa ide yang muncul pada rapat kemarin adalah membahas bahasa pemrograman dibawah ini :

  1. Shell Script / Bash
  2. Java
  3. Perl
  4. Python
  5. GNU C/C++
  6. FreePascal
  7. Linux Kernel Programming

(more…)

Diskusi Manajemen Proyek

Wednesday, March 31st, 2010

Pingin tahu bagaimana tips dan trik mengelola proyek IT ? Atau mungkin, pingin tahu bagaimana sih dapur-nya sebuah Software House itu ? Atau ingin tahu bagaimana sih penerapan Extreme Programming, Agile Metodologi, dan berbagai macam metodologi keren yang lain. Kalau iya dan teman-teman ingin tahu, mungkin teman-teman bisa bergabung ke milis Manajemen Proyek IT yang terdapat di GoogleGroups :) Untuk teman-teman yang bertanya-tanya, apa sih isi dan yang dibahas di komunitas Manajemen Proyek IT ini ? Hm.. ini yang ada dihalaman depan groups-nya :

Di komunitas ini, kita membahas :

Berbagai aspek tentang manajemen proyek IT, misalnya:

  1. Estimasi Biaya Proyek
  2. Estimasi Durasi Proyek
  3. Cara membuat Project Plan
  4. Cara mengelola project yang sedang berjalan
  5. Metodologi, seperti Scrum, XP, Waterfall, Agile, Kanban.
  6. Manajemen Resiko
  7. Manajemen Personel
  8. Manajemen Dokumen

Tools atau alat bantu yang digunakan untuk mengelola project, misalnya:

  1. Issue/Task tracking, seperti Trac, Redmine, dotProject, dsb
  2. Kanban Board

Standar dan sertifikasi internasional, seperti :

  1. CMMI
  2. PMP
  3. ISO

Dengan mengimplementasikan prinsip manajemen proyek yang baik, diharapkan perusahaan dapat mengelola project IT dengan lebih efisien, predictable, dan profitable.

Untuk bergabung, kirimkan email ke it-project-indonesia-subscribe@googlegroups.com

Moderator :

  1. Endy Muhardin
  2. Ifnu Bima

Nah bagaimana teman-teman ? Tertarik bergabung ? Yuuk sharing-sharing yuuuuk, diskusi bareng-bareng bagaimana sih mengatur sebuah proyek di “Jalan Yang Benar” :D Omong-omong, beberapa thread terakhir lumayan bagus-bagus loh isinya :) ;)

Installasi File tar.gz dan tar.bz2

Saturday, March 27th, 2010

Bingung bagaimana caranya menginstall file yang mempunya ekstensi tar.gz atau tar.bz2 ? Apasih sebenarnya file tar.gz atau tar.bz2 ini ? Buat teman-teman yang belum tahu, file dengan ekstensi tar.gz atau tar.bz2 ini biasanya adalah sebuah source code dari sebuah aplikasi. Masih bingung juga dengan penjelasan barusan ? Kalau iya, sebenarnya distribusi GNU/Linux itu terdapat 2 macam model distribusi packages ? 2 macam model distribusi ? Yups.. 2 macam model distribusi tersebut yaitu :

  1. Binary Packages, ini dibuat untuk tujuan penggunaan secara umum, maksudnya penggunaan secara umum disini adalah agar dapat dijalankan di semua tipe dan arsitektur komputer. Dan biasanya distribusi ini juga tidak menggunakan opsi-opsi khusus yang terdapat di salah satu tipe atau arsitektur komputer tertentu. Sedangkan yang bisa dikategorikan dengan Binary Packages ini adalah semua packages yang ber-ekstensi *.deb, *.rpm, *.tgz dan *.txz, jadi jika menginstall sebuah aplikasi menggunakan repository maka itu berarti kita menginstall dari Binary Packages yang memang sudah disediakan untuk kebutuhan komputer kita. :)
  2. Source Packages, seperti pada namanya :D distribusi ini menyertakan file source code asli dari aplikasi-nya. Biasanya pihak pengembang pasti menyertakan atau menyediakan distribusi model ini untuk di download. Sedangkan untuk end-user, bisa menggunakan source code ini jika para pengembang tidak menyertakan Binary Packages untuk distribusi GNU/Linux yang digunakan :) Coba bayangkan jika teman-teman membuat sebuah aplikasi yang targetnya adalah Sistem Operasi GNU/Linux, installer model gimana yang akan teman-teman pilih dengan banyak-nya distribusi GNU/Linux ? Mau buat satu-persatu untuk tiap distribusi ? Ya pasti capek kan :D Cara paling gampang yaitu, sediakan-lah source code dari aplikasi teman-teman dan kemudian biarkan komunitas GNU/Linux sendiri yang membuatkan binary packages untuk aplikasi kita :D Lebih gampang kan ? :D

(more…)