Bot in Bash Console & Modular
Bot in Bash Console & Modular
Epsi رزﻗﻲSayidina
Selamat malam teman-tema semua, kita berjumpa lagi malam ini, dengan tema pemrograman BASH secara…
Sugandi Slamet
Belum pernah pak saya
Biasanya pakai apa um ?
Epsi رزﻗﻲSayidina
Photo
[Link]
#!/usr/bin/env
ls -l ~
$ chmod +x [Link]
$ ./[Link]
Maaf baru jawab, aku tadi numpang motor. Baru sempat ketik2
sekarang.
$ curl [Link]
ycode/master/[Link]
Epsi رزﻗﻲSayidina
Biasanya pakai apa um ? PHP, Django atau Kotlin ?
Pake php aja
[Link] 1/65
1/29/2018 Telegram Web
Sugandi Slamet
Sama python kdang2
Berarti sudah biasa pakai sha-bang ya .
Trims
Dalam kulgram nanti juga akan ada proses parsing JSON. 6:34:51 PM
Prada 6:57:47 PM
PR
Sap bang
Prada
Sap bang
Woke woke
Yuga
Kulgram itu ga selalu orang yang lebih pinter om, meskipun b…
sangat2 setuju
Bones ( P.A.D )
sangat2 setuju
Ada yang pandai di bidang X.
Ada yang pandai di bidang Y.
7:58:02 PM
GIF
[Link] 2/65
1/29/2018 Telegram Web
Sugandi Slamet 7:59:47 PM
Epsi رزﻗﻲSayidina
Berarti sudah biasa pakai sha-bang ya . Sepertinya di sini sud…
Sha-bang
hadir bang
hadir mas
Yang cukup kecil, dan ternyata salah satu topik yang tepat adalah
telegram bot.
Sugandi Slamet
Sha-bang itu apa ya?
Duh mas baru tanya sekarang
[Link] 3/65
1/29/2018 Telegram Web
8:06:56 PM
This?
8:08:53 PM
Kang Anton
This?
Ya betuulll.. Lanjut ya...
8:10:13 PM
/newbot
Lanjut om
This
[Link] 4/65
1/29/2018 Telegram Web
Epsi رزﻗﻲSayidina 8:11:14 PM
Kang Anton
#jombloGalau
Ya kang. Paman paham ini malam minggu.
Kang Anton
Photo
8:13:08 PM
Mengapa ? 8:13:14 PM
[Link] 5/65
1/29/2018 Telegram Web
Bones ( P.A.D ) 8:13:59 PM
Kang Anton
Photo
Photo
Nah keren
8:14:58 PM
Ganti avatar
loncat step
Epsi رزﻗﻲSayidina
Duh mas baru tanya sekarang
O h maaf ya udh lanjut
ganti keterangan
Sugandi Slamet
[Link] 6/65
1/29/2018 Telegram Web
Epsi رزﻗﻲSayidina 8:15:50 PM
Saya menunggu respons tanggapan, sebelum melanjutkan. A…
Ok sudah
8:16:42 PM
Kang Anton
Udh bisa euy
Syukur.
Kang Anton
Photo
Jiah
Bones ( P.A.D )
Jiah
Maklum ya, sya msh awam
Jufi 8:17:38 PM
Epsi رزﻗﻲSayidina
Syukur. Sekarang buka terminal bash nya
Terminal nya dmna om?
Jufi 8:17:43 PM
[Link] 7/65
1/29/2018 Telegram Web
Bones ( P.A.D ) 8:18:39 PM
Kang Anton
Maklum ya, sya msh awam
Bukan itu token jangan di bagi2 loe keep sendiri
Wkwk
Maap2 8:18:51 PM
Linux? 8:19:28 PM
Janexmgd 8:19:41 PM
Hmm lanjut om :)
Kang Anton
Linux?
iya pak
Kang Anton
Linux?
Iya terminal apa saja yang ada bash nya.
Jufi 8:20:35 PM
saya kok dapat beignian ya ?
Di smartphone bisakah ?
iya om lanjut
Jufi 8:21:56 PM
Epsi رزﻗﻲSayidina
Di smartphone bisakah ?
oh bisa om
Epsi رزﻗﻲSayidina
Di smartphone bisakah ?
[Link] 8/65
1/29/2018 Telegram Web
misalnya
token='your_token_here'
echo $token
si_kabayan 8:23:15 PM
Kang Anton
Photo
Jufi 8:23:37 PM
Epsi رزﻗﻲSayidina
Di bash atau zsh. Kita masukkan toen sebagai variable. misaln…
cara masuk ke mode bash gimana ya ? apakah cukup dengan
hanya membuka terminal linux ?
si_kabayan
@para_bot itu bot ane zaman baheula Pake bash juga, kayak…
Ampun mastah.
Ini karena di group bash.
Seperti aku bilang sebelumnya, bot ini hanya case saja untuk
membikin script bash.
Di kulgram lain, aku akan ambil case yang lain. Namun tentunya
bertemakan bash juga.
Jufi 8:25:41 PM
cara masuk ke mode bash gimana ya ? apakah cukup dengan …
Terminal linux umumnya bash.
DaunMintUser
Linus pake gentoo?
itu gambar Stallman, linus pakai fedora
Jufi
cara masuk ke mode bash gimana ya ? apakah cukup dengan …
coba di terminal
$ echo $0
Jufi 8:27:36 PM
[Link] 9/65
1/29/2018 Telegram Web
Kang Anton 8:28:01 PM
Terus om/
tokennya kelihatan
DaunMintUser 8:28:17 PM
dhang gara
itu gambar Stallman, linus pakai fedora
Klo stallman?gentoo?
Jufi
Photo
Bill 8:28:56 PM
Fahmi Nurcahya
Apa bisa di termux?
Termux jalan kok om, ini ane lagi pake juga
Sip om
Jufi 8:29:30 PM
Jufi
ooh ole om , thanks
Hehe... bisakah ?
Jufi 8:30:00 PM
Epsi رزﻗﻲSayidina
Hehe... bisakah ?
siip sudah bisa
Lanjut ya..
lanjut
Epsi رزﻗﻲSayidina
Lanjut ya..
Belom om
[Link] 10/65
1/29/2018 Telegram Web
~/.config/cupubot/[Link]
Udh
% mkdir ~/.config/cupubot
% touch ~/.config/cupubot/[Link]
% echo "token='your_token_here'" > ~/.config/cupubo
t/[Link]
% source ~/.config/cupubot/[Link]
% echo $token
8:33:47 PM
Penampakan
Epsi رزﻗﻲSayidina
Di bash atau zsh. Kita masukkan toen sebagai variable. misaln…
Ini @kangAnton
% source ~/.config/cupubot/[Link]
bisa mas
Jufi 8:38:04 PM
Thx
Jufi
[Link] 11/65
1/29/2018 Telegram Web
bearti jika buka terminal baru enggak bisa echo $token kah ? 8:38:27 PM
Babang 8:39:08 PM
sudah
Jufi
jadi harus pakai script % source ~/.config/cupubot/[Link] …
Ini sekedar tempat variable saja.
Jadi kalau tidak sengaja sesi terminalnya ditutup.
Jufi 8:40:09 PM
bearti jika buka terminal baru enggak bisa echo $token kah ?
Bisa, aku menghindari bolak-balik mengetik saja.
Photo
[Link]
Jufi 8:44:16 PM
% tele_url="[Link]
Kalau perlu
% echo $tele_url
Epsi رزﻗﻲSayidina
Ya... @kangAnton pintaaar. Jangan lupa di [Link] ditulis ko…
wait
Babang
[Link] 12/65
1/29/2018 Telegram Web
Epsi رزﻗﻲSayidina 8:46:03 PM
Bisa dibaca nanti. Yang kita perlu tahu, untuk menggunakan t…
methode_ name ny apa apa
Helmy Agta
kurang tau kalau smartphone
Kalau di smartphone bisa pakai termux
Jufi 8:46:48 PM
Epsi رزﻗﻲSayidina
Sekarang kita bikin variable URL-nya di console. % tele_url="…
bisa om
ane nyimak
Babang
methode_ name ny apa apa
Berhubung sudah ada tanya, bisa dicoba method getMe .
% curl -s "${tele_url}/getMe"
{"ok":true,"result":{"id":547870369,"is_bot":true,"f
irst_name":"epsi_bot","username":"epsi_bot"}}
wai wait
Kang Anton
wai wait
Kutunggu.
Kang Anton
itu [Link] di ketik di console terminalnya om
Buka saja pakai text editor.
@kangAnton biasanya pakai apa ?
sudah mas
Kang Anton
itu [Link] di ketik di console terminalnya om
Misalnya kalau aku pakai text editor geany .
$ geany ~/.config/cupubot/[Link]
Jufi 8:50:04 PM
[Link] 13/65
1/29/2018 Telegram Web
8:50:40 PM
Kang Anton
Photo
Jufi
Photo
Sebentar...
{"ok":true,"result":
{"id":494830934,"is_bot":true,"first_name":"zifor_bot","username
":"ziefbot"}}[
token panjang
okkk
udah om 8:54:09 PM
Danny 8:55:04 PM
Pelan2 Om
Zifor Syahid
{"ok":true,"result":{"id":494830934,"is_bot":true,"first_name"…
Mantaaafzzz....
Berikut contohnya:
[Link] 14/65
1/29/2018 Telegram Web
Danny 8:55:38 PM
Pelan2 Om
Maaf... ampun mas.
Jufi 8:55:41 PM
Epsi رزﻗﻲSayidina
di [Link] sudah pakai token panjang ya... Sebentar...
sudah om 8:55:43 PM
Jufi
sudah om
Bisa getMe kah mas ?
Jufi 8:57:01 PM
{
"ok": true,
"result": {
"id": 521545750,
"is_bot": true,
"first_name": "helmyalfatah",
"username": "helmybot"
}
}
Jufi
Photo
Jufi
apa karna koneksi ya ?
Kalau di browser bisakah pakai URL tersebut ?
Pakai source
haha ok om
[Link] 15/65
1/29/2018 Telegram Web
Zifor Syahid 9:00:49 PM
Danny
Pelan2 Om
ane ringkeskan apa yang perlu dilakukan om..
1. buat bot di botfather, bikin token
di terminal :
nano ~/.config/botbelajar/[Link] ([Link]
3. load config
diterminal:
source ~/.config/botbelajar/[Link] ([Link]
diterminal:
tele_url="[Link]
([Link]
5. panggil api
diterminal :
curl -s "${tele_url}/getMe (tg://bot_command?
command=getMe)"
atau
curl -s "${tele_url}/getMe (tg://bot_command?
command=getMe)" | json_reformat
Zifor Syahid
ane ringkeskan apa yang perlu dilakukan om.. 1. buat bot di b…
gud
Epsi رزﻗﻲSayidina
Mantaaafzzz.... JSON ini dapat dirapikan dengan json_re…
Kenapa ga pake jq aja langsung?
% curl -s "${tele_url}/getMe" | jq
Zifor Syahid
ane ringkeskan apa yang perlu dilakukan om.. 1. buat bot di b…
Bijak. Top Markotop.
/getMe (tg://bot_command?command=getMe)
Epsi رزﻗﻲSayidina
Bijak. Top Markotop. Bolehkah pakai token ini, untuk teman2 …
monggo om
[Link] 16/65
1/29/2018 Telegram Web
Epsi رزﻗﻲSayidina 9:02:44 PM
si_kabayan
Kenapa ga pake jq aja langsung? % curl -s "${tele_url}/getM…
Sabar kang.
Jufi 9:02:46 PM
Epsi رزﻗﻲSayidina
Kalau di browser bisakah pakai URL tersebut ?
oke om sudah , ternyata token ane kurang 1 huruf
Jufi
oke om sudah , ternyata token ane kurang 1 huruf
Syukur.
Danny 9:04:19 PM
Zifor Syahid
ane ringkeskan apa yang perlu dilakukan om.. 1. buat bot di b…
Thanks: )
Pelan-pelan ya...
Para suhu mastah harap bersabar.
Nantinya kita bisa lihat isi file tersebut dengan perintah cat .
[Link] 17/65
1/29/2018 Telegram Web
% cat [Link] | json_reformat
{
"ok": true,
"result": {
"id": 513194798,
"is_bot": true,
"first_name": "Cupu Bot",
"username": "cupu_cupu_bot"
}
}
Photo
9:08:38 PM
]
}
.ok
dan
.result
9:12:22 PM
Yuga 9:12:45 PM
Kang Anton
Photo
Good
Bagaimana ?
[Link] 18/65
1/29/2018 Telegram Web
Masih terlalu cepatkah ?
Atau dapatkah dilanjutkan ?
lanjutkan om
Epsi رزﻗﻲSayidina
Bagaimana ? Masih terlalu cepatkah ? Atau dapatkah dilanjutk…
lanjut pak .
[
{
"update_id": 776707999,
"message": {
"message_id": 2,
"from": {
"id": 458902151,
"is_bot": false,
"first_name": "Helmy",
"last_name": "Agta",
"username": "kutux",
"language_code": "en-US"
},
"chat": {
"id": 458902151,
"first_name": "Helmy",
"last_name": "Agta",
[Link] 19/65
1/29/2018 Telegram Web
"username": "kutux",
"type": "private"
},
"date": 1517061610,
"text": "who"
}
}
]
| jq -r ".result"
alhamdulillah om hehe
wkwk
Photo
[Link] 20/65
1/29/2018 Telegram Web
Helmy Agta 9:20:08 PM
Epsi رزﻗﻲSayidina
Hehee... seneng khan.. berasa @heker .
waduuh wkkwkw
Epsi رزﻗﻲSayidina
Sekarang buka bot masing-masing dan tulis sesuatu. Tulis ap…
btw buka bot masing masing itu maksudnya botfather atau link
bot kita sendiri?
chat_id=$(curl -s "${tele_url}/getUpdates" | jq -r
".result[0].[Link]")
Asem Bused
maaf pak tanya sedikit melenceng. misal kita abis install sebu…
Biasanya langsung kenal, karena paket yang di-install, dicari di-
path.
Path ini bukan dicari per sisi bash, namun per sesi command line.
Epsi رزﻗﻲSayidina
Biasanya langsung kenal, karena paket yang di-install, dicari d…
oh maaf saya salah tanya nya berarti. biar auto complete (tab)
nya langsung keluar
Asem Bused
maaf pak tanya sedikit melenceng. misal kita abis install sebu…
[Link] 21/65
1/29/2018 Telegram Web
minggu. Jadi bukan kencan atau hal lain.
#kode (tg://search_hashtag?hashtag=kode)
Fahmi Nurcahya
Photo
Asem Bused
oh maaf saya salah tanya nya berarti. biar auto complete (tab…
jadi gimana ya pak ?
Di termux wkwk
Fahmi Nurcahya
Di termux wkwk
nggak ada json_reformat nya bang
Fahmi Nurcahya
Di termux wkwk
Kalau jq ?
jq ada di termux.
Ok om siap
Zifor Syahid
coba jq bisa nggak?
Kalau di linux sih bisa pakai | jq -r ".ok"
Fahmi Nurcahya
Cuma ngeganti json jadi jq doang om?
iya
Epsi رزﻗﻲSayidina
[Link] 22/65
1/29/2018 Telegram Web
Command subs 9:34:22 PM
chat_id=$(curl -s "${tele_url}/getUpdates" | jq -r
".result[0].[Link]")
lalu tampilkan
% echo $chat_id
507894652
9:35:43 PM
Epsi رزﻗﻲSayidina
Pelan-pelan ya... Para suhu mastah harap bersabar. Terkadan…
Monggo dilanjut om , saya tertinggal disini
Kalau Bot ini aku juga baru bisa, belajar dari pak Hasan di 9:39:49 PM
@botphp
Epsi رزﻗﻲSayidina
Hola a todos .... ?
udah pak...
[Link] 23/65
1/29/2018 Telegram Web
% curl -s "${tele_url}/sendMessage?chat_id=${chat_i
d}" \
--data-urlencode "text=Thank you for visiting" | j
son_reformat
{
"ok": true,
"result": {
"message_id": 123,
"from": {
"id": 547870369,
"is_bot": true,
"first_name": "epsi_bot",
"username": "epsi_bot"
},
"chat": {
"id": 507894652,
"first_name": "Epsi",
"last_name": "Sayidina",
"username": "RizqiSayidina",
"type": "private"
},
"date": 1516743765,
"text": "Thank you for visiting"
}
}
9:47:39 PM
9:48:12 PM
Mudah bukan..
Epsi رزﻗﻲSayidina
Bagaimana kawan-kawan yang lain ? Mudah bukan.. Mau say
keren2 pak.
Supaya update tidak membaca data yang lama, maka kita beri
perintah offset sesuai dengan update_id yang ada di JSON path
tadi.
[Link] 24/65
1/29/2018 Telegram Web
% curl -s "${tele_url}/getUpdates?offset=408173039"
{"ok":true,"result":[]}
DaunMintUser 9:53:02 PM
Asem Bused
keren2 pak.
Kamsia Kamsia. Syukron. Maaciiih...
DaunMintUser 9:54:30 PM
Maaf,saya mau out karena blm paham dg pembicaraan mas"ny
🏼
Epsi رزﻗﻲSayidina
Supaya update tidak membaca data yang lama, maka kita ber…
update_id itu yang mana ya pak ?
maland
untuk log akan dibuat yang merasa ketinggalan nanti bisa di …
Siap min
Asky キラ 10:58:55 PM
Asky キラ
njirr... ngirim bot yg udah di buat ke teman malah di spam. …
Resolve URL image berdasarkan ID nya.
Sebentar...
Asky キラ 11:03:50 PM
njirr... ngirim bot yg udah di buat ke teman malah di spam. …
[Link] 25/65
1/29/2018 Telegram Web
How does it works ?
First, we need the ID of the user, that we can get from each
JSON.
Asky キラ 11:07:02 PM
njirr... ngirim bot yg udah di buat ke teman malah di spam. …
Kalau bingung ikut kulgram yang besok.
Epsi رزﻗﻲSayidina:
Sekarang kita berpindah ke API yang lain yaitu getUpdates
(pakai s).
Asky キラ 11:11:48 PM
muhzikri 11:36:35 PM
maland
untuk log akan dibuat yang merasa ketinggalan nanti bisa di …
dimana um? maapkeun baru nongol~
Epsi رزﻗﻲSayidina
Sesi akan paman tutup pukul 20.00. Paman kembalikan foru…
makasih pak, ditunggu kulgramnya besok
Epsi رزﻗﻲSayidina
Kalau di tempatku begini. Setelah menulis hello world. % cur…
wah keren bisa jadi gini ya
[Link]
([Link]
[Link] 26/65
1/29/2018 Telegram Web
Bash Notes for Professionals book
([Link]
dhang gara
The Bash Notes for Professionals book is compiled from Stac…
wah apa itu artinya ane makanya kangkung gak mudeng bahasa
inglish2
Sugandi Slamet
maksi om kayaknya kemarin udah download ini
buku kayak gini mungkin butuh di pin,
dhang gara
buku kayak gini mungkin butuh di pin,
Gpp om tp lebih interaktif kalo kulgram
Sugandi Slamet
ada rangkuman sha-bang kah.. apa itu sha-bang apa itu subs …
Ini buku wajib bash.
[Link] ([Link]
Sugandi Slamet
[Link] 27/65
1/29/2018 Telegram Web
ada rangkuman sha-bang kah.. apa itu sha-bang apa itu subs …
[Link]
([Link]
dhang gara
[Link]
Epsi رزﻗﻲSayidina
Kalau di tempatku begini. Setelah menulis hello world. % cur…
om, ini sih nulis "hello world" nya dimana ya?
oke..oke
11:01:10 AM
oh gitu toh..
11:09:32 AM
ya elah, mau install harus update dulu, kuota limit lagi wkwkwk
NGUYEN 11:14:26 AM
[Link] 28/65
1/29/2018 Telegram Web
si_kabayan 11:15:58 AM
NGUYEN
waduh gan, gimana mau ngehacking internet aja terbatas ku…
sebenernya sih ada mas, tapi...lg hemat
si_kabayan 11:19:33 AM
Itu paket tambahan doang Coba apt nya pake parameter no-…
lengkapnya gimana mas commandnya?
si_kabayan 11:24:49 AM
si_kabayan 11:36:05 AM
PM 12:37:14 PM
Mangan2
2. Pasang jq 2:23:40 PM
Adisa Argani
4. (optional) Join @heker
(3) optional
(4) wajib
Kebalik mas
[Link] 29/65
1/29/2018 Telegram Web
Asky キラ 6:50:37 PM
Asky キラ 7:54:20 PM
pertamax.... 🏎
Asky キラ 7:58:10 PM
Silahkan buka
* Terminal bash
* Text editor
Ayo kita mulai.
Asky キラ 7:58:36 PM
belanja cemilan dulu.
Mangga atuh kang
[Link]
#!/usr/bin/env bash
ls -l ~
Atau
#!/usr/bin/bash
ls -l ~
Sistem hanya dapat tahu kalau ini adalah executable bilamana 8:04:12 PM
telah diatur
% chmod +x [Link]
Dan nama script di linux tidak harus diakhiri dengan akhiran .sh .
Editor akan paham ini adalah script bilamana di awal ada sha-
bang.
[Link] 30/65
1/29/2018 Telegram Web
Rafsanzani Suhada 8:05:03 PM
Hadiiiirrrrr
% ./[Link]
Ada pertanyaan ?
cukup jelas
Rafsanzani Suhada
Hadiiiirrrrr
Terima... kasiiiiiih
/home/epsi/Documents/cupubot/bash/
Epsi رزﻗﻲSayidina
Langsung masuk ke script ya. Buka text editor.
Sudah...
#!/usr/bin/env bash
### -- config --
if [ ! -f $config_file ];
then
echo "Config not found!" && exit 0
else
source $config_file
fi
tele_url="[Link]
### -- main --
updates=$(curl -s "${tele_url}/getUpdates")
count_update=$(echo $updates | jq -r ".result | leng
th")
% ./[Link]
[Link] 31/65
1/29/2018 Telegram Web
Intinya sih, semua yang ditulis di console kemarin malam, kita 8:10:08 PM
jadikan script supaya tidak berulang-ulang kita tulis.
Yang kemarib belum ada di console hanyalah loop dengan gaya 8:10:53 PM
bahasa C.
Sekarang, buka telegram bot yang kemarin kita bikin. Lalu 8:11:50 PM
jalankan script.
8:12:42 PM
F2R 8:15:20 PM
Next
F2R
Next
Terimakasih banyak dukungannya.
F2R 8:17:57 PM
Epsi رزﻗﻲSayidina
Terimakasih banyak dukungannya.
Sip om
Resiko dari tidak rapih adalah, program tidak dapat dipelihara. 8:19:29 PM
Ketika kita baca coding yang kita bikin, di tahun depannya, kita
bingung sendiri, kemarin bikin apaan.
Kalau script awal tadi memang sifatnya __quick and dirty 8:20:06 PM
Kalau script awal tadi memang sifatnya quick and dirty, hanya 8:22:15 PM
sebatas memindah dari console ke script.
[Link] 32/65
1/29/2018 Telegram Web
[Link]
#!/usr/bin/env bash
### -- config --
if [ ! -f $config_file ];
then
echo "Config not found!" && exit 0
else
source $config_file
fi
tele_url="[Link]
### -- task --
function process_observe() {
local i update
local updates=$(curl -s "${tele_url}/getUpdate
s")
local count_update=$(echo $updates | jq -r ".res
ult | length")
### -- controller --
function do_observe() {
# no loop
process_observe
}
### -- main --
do_observe
Fungsi script ini masih sebatas mengambil data JSON dari 8:24:53 PM
Telegram API dengan method getUpdates.
Setelah ini kita ubah section2 tersebut ke bentuk modular dalam 8:25:17 PM
script terpisah.
Asky キラ 8:25:20 PM
[Link] 33/65
1/29/2018 Telegram Web
function do_observe() {
# no loop
process_observe
}
### — main —
do_observe
% ./[Link]
Asky キラ 8:27:00 PM
### — controller — function do_observe() { # no loop proce…
Pertanyaan bagus
process_observe
Asky キラ 8:28:09 PM
### — controller — function do_observe() { # no loop proce…
Namun ketika script sudah panjang kita perlu seksi tersendiri.
Misalnya ini
#!/usr/bin/env bash
function do_observe() {
process_observe
}
function loop_reply() {
while true; do
process_reply
sleep 1
done
}
Asky キラ 8:29:09 PM
### — controller — function do_observe() { # no loop proce…
Atau ini untuk contoh yang lebih panjang
[Link] 34/65
1/29/2018 Telegram Web
#!/usr/bin/env bash
function do_observe() {
process_observe
}
function loop_reply() {
while true; do
process_reply
sleep 1
done
}
function loop_newmember() {
while true; do
process_newmember
sleep 1
done
}
function do_logger_text() {
# empty logger file
[[ -f $log_file_text ]] && rm $log_file_text
process_logger_text
}
function do_logger_html() {
process_logger_html
Asky キラ 8:29:59 PM
bisa jelaskan sedikit bagian ini om?
Cukup jelaskah ?
Asky キラ 8:30:12 PM
Asky キラ
wahh udah masuk html.
Itu nanti belakangan waktu bikin html logger.
Asky キラ 8:31:52 PM
### — controller — function do_observe() { # no loop proce…
Jadi do_observe hanyalah sekedar fungsi untuk memanggil task
process_observe .
[Link] 35/65
1/29/2018 Telegram Web
### -- controller --
function do_observe() {
# no loop
process_observe
}
Asem Bused
duh ketinggalan gara2 nonton yutub. ngejar dulu
Aku juga hampir telat gegara bayar cicilan 🏼.
Asky キラ 8:33:20 PM
lanjut om.
[Link]
[Link]
[Link]
[Link]
Asky キラ 8:35:24 PM
#!/usr/bin/env bash
# This is a telegram bot in bash
### -- module --
DIR=$(dirname "$0")
. ${DIR}/[Link]
. ${DIR}/[Link]
. ${DIR}/[Link]
### -- main --
do_observe
[Link] 36/65
1/29/2018 Telegram Web
Yang mungkin menarik adalah 8:38:28 PM
DIR=$(dirname "$0")
[Link]
#!/usr/bin/env bash
# no need sha-bang for the script to run,
# but needed, so file manager can detect its type.
### -- config --
if [ ! -f $config_file ];
then
## exit success (0)
echo "Config not found!" && exit 0
else
source $config_file
fi
tele_url="[Link]
[Link]
#!/usr/bin/env bash
function do_observe() {
process_observe
}
[Link]
#!/usr/bin/env bash
function process_observe() {
local i update
local updates=$(curl -s "${tele_url}/getUpdate
s")
local count_update=$(echo $updates | jq -r ".res
ult | length")
Silahkan bertanya.
[Link] 37/65
1/29/2018 Telegram Web
Kalau sudah modular, akan mudah menambahkan fungsi-fungsi 8:45:56 PM
lain.
widih banyak script nya .... bntr2 pak. sekalian ngebiasain pake
vim
Asem Bused
bedanya source sama . apa ya pak ?
CMIIW. Ini sendek pengetahuanku saja yaks.
Kalau paman salah, mohon koreksi dari para mastah di sini. Dan 8:50:03 PM
terimakasih sebelumnya.
Epsi رزﻗﻲSayidina
Maaf. Tulis sesuatu di chat bot. Bisa apa saja.
yang ini kelewat, gpp kan
Lanjut aja
Mereka memang orang2 cerdas yang bisa bikin coding satu single
file dengan 200 baris.
[Link] 38/65
1/29/2018 Telegram Web
Epsi رزﻗﻲSayidina
Sistem hanya dapat tahu kalau ini adalah executable bilamana…
Nah ini pertanyaan ane kmrin jelas pak siap lanjut
Epsi رزﻗﻲSayidina
Kalau lihat source code di github, biasanya bash dijadika…
gaya ngoding orang beda2 sih pak. tapi keren untuk dapat
melihat berbagai gaya koding banyak orang lewat github
Sekarang kita akan me-reply telegram bot. Jadi bukan hanya 9:01:29 PM
observe saja. Ada beberapa file yag kita butuh.
[Link]
[Link]
[Link]
Asky キラ 9:02:26 PM
Epsi رزﻗﻲSayidina
Sekarang kita akan me-reply telegram bot. Jadi bukan hanya …
file ini masih di DIR ~/document/bot ?
[Link]
[Link] 39/65
1/29/2018 Telegram Web
#!/usr/bin/env bash
### -- module --
DIR=$(dirname "$0")
. ${DIR}/[Link] # no change
. ${DIR}/[Link]
. ${DIR}/[Link] # no need
. ${DIR}/[Link]
### -- main --
do_reply
Asky キラ 9:03:27 PM
file ini masih di DIR ~/document/bot ?
Di path mana saja boleh.
Senyamannya.
[Link]
#!/usr/bin/env bash
function do_observe() {
process_observe
}
function do_reply() {
process_reply
}
[Link]
#!/usr/bin/env bash
function process_reply() {
local i update message_id chat_id
local updates=$(curl -s "${tele_url}/getUpdate
s")
local count_update=$(echo $updates | jq -r ".res
ult | length")
result=$(curl -s "${tele_url}/sendMessage" \
--data-urlencode "chat_id=${chat_i
d}" \
--data-urlencode "reply_to_message
_id=${message_id}" \
--data-urlencode "text=Thank you f
or your message."
);
done
}
[Link] 40/65
1/29/2018 Telegram Web
Coba tulis sesuatu d chat bot yang dibikin kemarin lalu. 9:09:25 PM
% ./[Link]
9:09:38 PM
Jalankan script
9:10:00 PM
Asky キラ 9:10:15 PM
Asky キラ
utk chmod +x banyak file gimana pakde?
$ chmod +x path_to_dir\*
Asky キラ 9:10:58 PM
$ chmod +x *.bash
[Link]
[Link]
[Link]
[Link]
[Link] 41/65
1/29/2018 Telegram Web
[Link]
#!/usr/bin/env bash
### -- module --
DIR=$(dirname "$0")
. ${DIR}/[Link]
. ${DIR}/[Link]
. ${DIR}/[Link] # no need
. ${DIR}/[Link]
### -- main --
loop_reply
[Link]
tele_url="[Link]
if [ ! -f $last_id_file ];
then
touch $last_id_file
echo 0 > $last_id_file
else
last_id=$(cat $last_id_file)
# echo "last id = $last_id"
fi
Fungsi dari last_id ini untuk mengatur offset dari path dari
ipdate_id yang terakhir yang dikeluarkan oleh API getUpdates .
Intinya supaya data lama tidak perlu dipanggil keluar lagi dalam
hasil JSON-nya.
Epsi رزﻗﻲSayidina
Sekarang, semua hasil kulgram telegram bot di console kemar…
pak ini reply ke semua chat ya ?
Asky キラ 9:20:50 PM
tanya
memang agak lama pak, bot-nya balas pesan?
Epsi رزﻗﻲSayidina
Kalau menjalankan script di terminal % ./[Link] Ini dasar …
Kalo jalanin sh [Link] ([Link] bisa kan pak bedanya dgn
./file (tg://bot_command?command=file).sh
Asem Bused
pak ini reply ke semua chat ya ?
1. Semua chat di bot.
Asky キラ 9:21:36 PM
tanya memang agak lama pak, bot-nya balas pesan?
[Link] 42/65
1/29/2018 Telegram Web
Agak lama memang
Asky キラ 9:23:38 PM
Epsi رزﻗﻲSayidina
1. Semua chat di bot. 2. Atau semua chat di group. Supaya ti…
lanjut pak. kalo perlu, sampe si robot bisa di ajak komunikasi.
hehe
Epsi رزﻗﻲSayidina
Kalau itu membuka script dalam sesi baru sh. Aku kurang pah…
Di dalam buku yg tadi malam saya baca ada beberapa
menjalankan script bash
[Link]
#!/usr/bin/env bash
function do_observe() {
process_observe
}
function loop_reply() {
while true; do
process_reply
sleep 1
done
}
[Link] 43/65
1/29/2018 Telegram Web
Kok /start nya juga kereply ya om?
Sugandi Slamet
Kalo jalanin sh [Link] bisa kan pak bedanya dgn ./[Link]
kalo setauku
./file (tg://bot_command?command=file).sh itu seperti exec
[Link] ([Link] jadi ngeksekusi file tersebut jadi perlu
permission executable.
kalo sh nggak usah pake permission mau soalnya ngeksekusi
script dengan intepreter sh
*CMIIW
Asem Bused
kalo setauku ./[Link] itu seperti exec [Link] jadi ngeksekusi fil…
Oh
Pertanyaan bagus.
Sugandi Slamet
Kalo jalanin sh [Link] bisa kan pak bedanya dgn ./[Link]
Mungkin menurut saya ./file (tg://bot_command?command=file)
itu universal di Linux mas buat execute file apa saja.
Yang menentukan itu headernya seperti #!/bin/bash
Asem Bused
kalo setauku ./[Link] itu seperti exec [Link] jadi ngeksekusi fil…
Oh iya..beneeer.
Asem Bused
kalo setauku ./[Link] itu seperti exec [Link] jadi ngeksekusi fil…
Maksi pak penjelasnnya
Bie Schopath
Mungkin menurut saya ./file itu universal di Linux mas buat ex…
Trims juga sudah bantu2.
Bie Schopath
Mungkin menurut saya ./file itu universal di Linux mas buat ex…
Ok mas sekali lagi makasi untuj tambahannya
Ok lanjuy 9:28:57 PM
[Link] 44/65
1/29/2018 Telegram Web
Epsi رزﻗﻲSayidina 9:29:42 PM
05-task-reply
#!/usr/bin/env bash
function process_reply() {
# global-project : last_id
# global-module : _
local i update message_id chat_id text
get_feedback_reply "$update"
result=$(curl -s "${tele_url}/sendMessage" \
--data-urlencode "chat_id=${chat_i
d}" \
--data-urlencode "reply_to_message
_id=${message_id}" \
--data-urlencode "text=$return_fee
dback"
);
last_id=$(($last_id + 1))
echo $last_id > $last_id_file
function get_feedback_reply() {
# global-module : return_feedback
local update=$1
[Link] 45/65
1/29/2018 Telegram Web
Jalankan saja script 9:31:07 PM
% ./[Link]
Epsi رزﻗﻲSayidina
Persiapan nanti malam: 1. Baca kulgram kemarin malam.
#@mulai_2
9:32:04 PM
Jelas pak
Bie Schopath
Aku izin nambahin kawanku ya mas
Nambahin apa pak silahkan
Bie Schopath
Aku izin nambahin kawanku ya mas
Boleee
[Link] 46/65
1/29/2018 Telegram Web
Sugandi Slamet 9:35:29 PM
1. Satu: loop
while true; do
...
done
Khunerable 9:35:45 PM
Epsi رزﻗﻲSayidina
Sekarang, mohon maaf agak panjang, berikut script reply nya…
saya cermati dulu script nya ....
Khunerable
permisi, salam kenal
Salam knal
Hi
Arya Narotama
Hi
Hi to
function parse_reply() {
...
for ((i=0; i<$count_update; i++)); do
...
done
}
Khunerable 9:37:42 PM
[Link] 9:37:57 PM
Asky キラ 9:38:41 PM
tanya memang agak lama pak, bot-nya balas pesan?
kalo mau cepet pasang di web mas , make webhook
[Link]
walah anak ini mau membuat bot
Wew?? Bapak
[Link] 47/65
1/29/2018 Telegram Web
3. Tiga
Fungsi feedback
function get_feedback_reply()
...
}
[Link] 9:39:05 PM
Sugandi Slamet
Wew?? Bapak
iya itu anak saya mas wkwkwk , hasil bayi tabung
[Link]
kalo mau cepet pasang di web mas , make webhook
Ini ngelibdur g baca dr atas
Aku terhibur
[Link] 9:40:03 PM
eh wkwk saya fikir biar respon botnya cepet :'v kalo mau respon
bales botnya cepet di pasang di web ,, metode webhook , udah
ah kabur wkwk
[Link]
walah anak ini mau membuat bot
iya mas, lg belajar sedikit dikit
[Link] 9:41:48 PM
Asky キラ 9:41:52 PM
Epsi رزﻗﻲSayidina
Sekarang, mohon maaf agak panjang, berikut script reply nya…
saya coba run script ini koq gk respon ya pak?
[Link]
semangat mas :)
siap guru
Asky キラ 9:42:32 PM
[Link]
semangat mas :)
bot agen pulsanya mana om?
[Link]
eh wkwk saya fikir biar respon botnya cepet :'v kalo mau resp…
[Link] 48/65
1/29/2018 Telegram Web
Betul sekali pak webhook.
Mohon maaf saya lupa jelaskan mengenai webhook ini.
[Link] 9:42:45 PM
Asky キラ
bot agen pulsanya mana om?
ada nih wkwkw , masa iya mau di masukin kesini wkwk
Asky キラ 9:44:13 PM
[Link]
ada nih wkwkw , masa iya mau di masukin kesini wkwk
buat referensi aja om.
Akan lebih baik kalau script yang kita bikin ada panduan help nya.
Setidaknya akan tampak lebih berkelas. Seperti contoh ini.
% cd ~/Documents/cupubot/bash
% ./[Link] --version
cupubot v0.001
% ./[Link] --help
usage: cupubot [options]
operations:
general
-v, --version display version information
-h, --help display help information
[Link] 9:45:34 PM
saya juga masih belaja kok , sama sama belajar mas hehe
ya kukasih nama cupu. hihihi 🏼
9:45:45 PM
usage
[Link] 9:45:46 PM
Epsi رزﻗﻲSayidina
ya kukasih nama cupu. hihihi 🏼
wahaha siapp masss
[Link] 49/65
1/29/2018 Telegram Web
[Link]
[Link]
[Link]
#!/usr/bin/env bash
# module: main
. ${DIR}/[Link]
. ${DIR}/[Link]
. ${DIR}/[Link]
. ${DIR}/[Link]
# module: task
. ${DIR}/tasks/[Link]
. ${DIR}/tasks/[Link]
### -- main --
get_options_from_arguments "$@"
Deki Akbar
malem semuanya,,, perknalkan saya anggota baru,,, salam kn…
Salam kak
Deki Akbar
malem semuanya,,, perknalkan saya anggota baru,,, salam kn…
Apa kabar mas.. baik2 sajakah si sana ?
saya mau nanya nih tentang bash .... baru blajar juga,,,, gimana
caraanya si script bisa basa format kaya gini
./kepo (tg://bot_command?command=kepo) <keyword> dsisilain
dia juga bisa kaya gini ./kepo (tg://bot_command?
command=kepo) -h
Deki Akbar
saya mau nanya nih tentang bash .... baru blajar juga,,,, gima…
Sedang kulgram mas.
[Link]
[Link] 50/65
1/29/2018 Telegram Web
#!/usr/bin/env bash
function message_usage() {
cat <<-EOF
usage: cupubot [options]
operations:
general
-v, --version display version information
-h, --help display help information
EOF
}
function message_version() {
local version='v0.001'
echo "cupubot $version"
}
script saya
maaf... 9:53:53 PM
Deki Akbar
oh iya maaf om gk tau ada kulgram...
Gpp nanti setelah selesai kak sabar
[Link]
#!/usr/bin/env bash
function get_options_from_arguments() {
# ! : indirect expansion
while [[ -n "${!OPTIND}" ]]; do
case "${!OPTIND}" in
version)
message_version
exit;;
esac
shift $OPTIND
OPTIND=1
done
}
[Link] 51/65
1/29/2018 Telegram Web
Deki Akbar 9:57:57 PM
Photo
Epsi رزﻗﻲSayidina
Screenshot ini sangat cocok untuk tema kulgram saat ini.
iya dr td siang susah nyari solusi dan barusan nemu grup ini di
github
Epsi رزﻗﻲSayidina
Berdasarkan tutorial kemarin, paman bikin script ini: #!/usr/…
walah telat jauh ane.. .. #ngebut (tg://search_hashtag?
hashtag=ngebut).. ngeeng
Misalnya
% cupubot version
% cupubot -v
% cupubot --v
Bagaimana ?
[Link]
[Link] 52/65
1/29/2018 Telegram Web
#!/usr/bin/env bash
# handling command
function handle_command_plain() {
local command=$1
case "$command" in
version)
message_version
exit;;
esac
}
# handling -command
function handle_command_opt() {
local command=$1
case "$command" in
-)
handle_command_optarg "$OPTARG"
;;
h)
message_usage
exit;;
v)
message_version
exit;;
*)
# Invalid Option
message_usage
exit;;
esac
}
# handling --command
function handle_command_optarg() {
local command=$1
case "$command" in
version)
message_version
exit;;
help)
message_usage
exit;;
observe)
do_observe
exit;;
reply)
loop_reply
exit;;
*)
# Invalid Option
message_usage
exit;;
esac
}
function get_options_from_arguments() {
# get argument length
[[ $# -eq "0" ]] && message_usage && exit;
# ! : indirect expansion
while [[ -n "${!OPTIND}" ]]; do
handle_command_plain "${!OPTIND}"
shift $OPTIND
OPTIND=1
done
# Invalid Option
message_usage
[Link] 53/65
1/29/2018 Telegram Web
exit
}
# reading
# [Link]
([Link]
? 10:09:39 PM
[Link] 10:11:45 PM
optind-variable-work-in-the-shell-builtin-getopts
([Link]
optind-variable-work-in-the-shell-builtin-getopts)
([Link]
the-optind-variable-work-in-the-shell-builtin-getopts)
Stackoverflow
How does the OPTIND variable work in the shell builtin
getopts
([Link]
does-the-optind-variable-work-in-the-shell-builtin-
getopts)
My shell script is quite simple, as the following:
Asky キラ 10:13:56 PM
[Link] 54/65
1/29/2018 Telegram Web
Dengan adanya vh-: artinya ada tiga argumen yang dapat
diterima yaitu:
-v
-h
--opsi
Tanda : berarti ada opsi tambahan. Oleh karena itu ada pilihan
ini.
--opsi
Asky キラ 10:14:54 PM
makin dalam makin cenat cenut.
Sebentar lagi selesai. Sabar kang.
Epsi رزﻗﻲSayidina
Sebentar lagi selesai. Sabar kang.
# handling --command
function handle_command_optarg() {
local command=$1
case "$command" in
version)
message_version
exit;;
help)
message_usage
exit;;
observe)
do_observe
exit;;
reply)
loop_reply
exit;;
*)
# Invalid Option
message_usage
exit;;
esac
}
--version
--help
--observe
--reply
Kalau digabung semua, maka pilihan argumen yang diterima dari 10:18:38 PM
script adalah
% cupubot-bash version
% cupubot-bash -v
% cupubot-bash -h
% cupubot-bash --version
% cupubot-bash --help
% cupubot-bash --observe
% cupubot-bash --reply
[Link] 55/65
1/29/2018 Telegram Web
Sudah selesai bagian penanganan parameter argument di script. 10:20:25 PM
lanjut
Deki Akbar
lanjut
Terimakasih, semoga sudah dapat dibaca polanya.
Bahkan kita bisa uji coba Makefile, untuk deploy script yang kita
bikin ke dalam OS. Jadinya script kita dapat dipanggil secara
system wide .
% cupubot --help
% ~/Documents/cupubot/bash/[Link] --help
% ls
Makefile cupubot-bash modular-tutorial
[Link] [Link] [Link]
[Link] [Link] tasks
10:28:12 PM
% ls -l ./tasks/*
-rw-r--r-- 1 epsi users 3530 Jan 28 08:35 ./tasks/l
ogger_html.bash
-rw-r--r-- 1 epsi users 2029 Jan 28 08:41 ./tasks/l
ogger_text.bash
-rw-r--r-- 1 epsi users 2018 Jan 28 12:45 ./tasks/n
ew_member.bash
-rw-r--r-- 1 epsi users 325 Jan 28 07:52 ./tasks/o
[Link]
-rw-r--r-- 1 epsi users 1839 Jan 28 08:14 ./tasks/r
[Link]
ls ./tasks/*
./tasks/logger_html.bash ./tasks/[Link]
./tasks/logger_text.bash ./tasks/[Link]
./tasks/new_member.bash
[Link] 56/65
1/29/2018 Telegram Web
cupubot-bash
#!/usr/bin/env bash
# redirect script to library
DIR=$(dirname "$0")
DIR=${DIR}/../lib/cupubot
. ${DIR}/[Link]
Makefile
PREFIX ?= /usr/local
bindir = $(PREFIX)/bin
libdir = $(PREFIX)/lib
/usr/local/bin: cupubot-bash
/usr/local/lib: *.bash
install:
@echo "Installing..."
# Scripts
@install -D -m755 ./cupubot-bash $(DESTDIR)$(bind
ir)/cupubot-bash
# Libs
@mkdir -p $(DESTDIR)$(libdir)/cupubot/tasks
@install -D -m644 ./*.bash $(DESTDIR)$(libdir)/cu
pubot
@install -D -m644 ./tasks/*.bash $(DESTDIR)$(libd
ir)/cupubot/tasks
10:35:57 PM
[Link] 57/65
1/29/2018 Telegram Web
% ls /usr/local/bin/cupu* /usr/local/lib/cupubot/*
/usr/local/bin/cupubot-bash
/usr/local/lib/cupubot/[Link]
/usr/local/lib/cupubot/[Link]
/usr/local/lib/cupubot/[Link]
/usr/local/lib/cupubot/[Link]
/usr/local/lib/cupubot/[Link]
/usr/local/lib/cupubot/tasks:
logger_html.bash new_member.bash [Link]
logger_text.bash [Link]
10:37:10 PM
Makefile
uninstall: 10:37:56 PM
@echo "Uninstalling..."
# Scripts
@rm $(DESTDIR)$(bindir)/cupubot (tg://bot_command?
command=cupubot)-bash
# Libs
@rm -r $(DESTDIR)$(libdir)/cupubot (tg://bot_command?
command=cupubot)
`
10:38:38 PM
Saat ini, setelah make install , script kita sudah dapat dipanggil 10:39:44 PM
dari mana saja.
% cupubot-bash --help
usage: cupubot [options]
operations:
general
-v, --version display version information
-h, --help display help information
10:40:03 PM
DIR=$(dirname "$0")
ke
[Link] 58/65
1/29/2018 Telegram Web
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pw
d )"
Jadi kita bertemu lagi dalam kondisi kepala yang lebih fresh.
Epsi رزﻗﻲSayidina
Photo
boleh tanya ini terminal apa ya kok keren ada bahasa jepangnya
Ichi ni san go dll
[Link] 10:48:10 PM
Epsi رزﻗﻲSayidina
Demikian kulgramnya sudah selesai. Masih ada beberapa ma…
Terimakasih mas atas ilmu yang telah diberikan, sukses terus ya
Sugandi Slamet
boleh tanya ini terminal apa ya kok keren ada bahasa jepang…
Itu hanya lemonbar kang.
[Link] 10:48:31 PM
Terimakasih mas atas ilmu yang telah diberikan, sukses terus…
Sama-sama.
Epsi رزﻗﻲSayidina
Bagaimana pak admin @maeland ? Apakah boleh ditutup…
makasih kang membantu banget, skrg boleh saya bertanya?
Dengan demikian paman tutup sesi kulgram hari ini, pada pukul
22.50. Lalu forum saya kembalikan ke admin @maeland.
Asem Bused
kalo setauku ./[Link] itu seperti exec [Link] jadi ngekse…
ikutan njawab ini.. sama sih pake setahu ane aja
[Link] 59/65
1/29/2018 Telegram Web
tanpa ./ coba di jalankan, hasilnya adalah command not
found karena file executablenya nggak di folder /bin
(tg://bot_command?command=bin) atau /usr/bin
tapi kalo kita tulis langsung pathnya, misal aja kalo di ane
/home/ghost/tools/ziefbot/[Link]
semoga manfaat
Deki Akbar
Photo
Ini kah ?
Epsi رزﻗﻲSayidina
Dengan demikian paman tutup sesi kulgram hari ini, pa…
Josss.. Sepertinya bukan @maeland pak, tapi @emaland..
Jadi gak keluar" deh beliaunya
Harr
Josss.. Sepertinya bukan @maeland pak, tapi @emaland.. Ja…
Maaf... ini kibord, yang bukan peganganku.. aku kurang teliti
silahkan jika ada tanya jawab bisa dilanjutkan dan untuk log
akan dibikin dan kalian bisa membacanya lagijika ada yang
ketinggalan terimakasih
Epsi رزﻗﻲSayidina
Boleeee
untuk ./myscript (tg://bot_command?command=myscript) —
help atau ./myscript (tg://bot_command?command=myscript) -h
kan bisa pakai getopts ya,,, nah kalo saya mau juga script saya
jalan bila di kasih perintah ./myscript (tg://bot_command?
command=myscript) keyword,,,,nah dalam hal ini keyword itu
bisa berubah ubah,,,
Deki Akbar
untuk ./myscript —help atau ./myscript -h kan bisa pakai get…
${OPTIND}
case "$command" in
version)
message_version
exit;;
esac
}
`
maland 10:55:07 PM
silahkan jika ada tanya jawab bisa dilanjutkan dan untuk log …
Terimakasih um @emaland atas kesempatan yang
membahagikan untuk membawa kulgram ini.
Yuhuuu
[Link] 60/65
1/29/2018 Telegram Web
Deki Akbar 10:55:31 PM
Epsi رزﻗﻲSayidina
# handling command function handle_command_plain() { lo…
ini untuk handling verion kan kang?
Deki Akbar
untuk ./myscript —help atau ./myscript -h kan bisa pakai get…
Sebetulnya vcontoh ini untuk handling version.
Namun bisa sesuai kekreatifan kita, text dalam variable bisa apa
saja.
case "$command" in
version)
message_version
exit;;
esac
}
# ! : indirect expansion
while [[ -n "${!OPTIND}" ]]; do
handle_command_plain "${!OPTIND}"
shift $OPTIND
OPTIND=1
done
# Invalid Option
message_usage
exit
}
hehe 11:02:05 PM
Deki Akbar
sebentar om saya coba dulu
[Link]
rns/cupubot/blob/master/loop/bash/[Link]
([Link]
rns/cupubot/blob/master/loop/bash/[Link])
([Link]
rns/cupubot/blob/master/loop/bash/[Link])
GitHub
epsi-rns/cupubot ([Link]
rns/cupubot/blob/master/loop/bash/[Link])
cupubot - Cupubot is a telegram bot for learning purpose, or
lame people.
[Link] 61/65
1/29/2018 Telegram Web
Sugandi Slamet
terimakasih atas kulgramnya paman
Sama-sama
Epsi رزﻗﻲSayidina
Jumat lalu sudah ada kulgram lemonbar di @dotfiles_id, diun…
iya pak terimakasih pak nanti saya coba lemonbar
##
# cupubot-bash
# Cupubot is a Telegram bot. Just another learning
project
##
PREFIX ?= /usr/local
bindir = $(PREFIX)/bin
libdir = $(PREFIX)/lib
# default target
all: doc
doc:
@echo "Nothing to do..."
# auxiliary
install:
@echo "Installing..."
# Scripts
@install -D -m755 ./cupubot-bash $(DESTDIR)$(bind
ir)/cupubot-bash
# Libs
@mkdir -p $(DESTDIR)$(libdir)/cupubot/tasks
@install -D -m644 ./*.bash $(DESTDIR)$(libdir)/cu
pubot
@install -D -m644 ./tasks/*.bash $(DESTDIR)$(libd
ir)/cupubot/tasks
uninstall:
@echo "Uninstalling..."
# Scripts
@rm $(DESTDIR)$(bindir)/cupubot-bash
# Libs
@rm -r $(DESTDIR)$(libdir)/cupubot
clean:
@echo "Cleaning..."
[Link] 62/65
1/29/2018 Telegram Web
Epsi رزﻗﻲSayidina 11:15:34 PM
Sugandi Slamet
ok sekarang tinggal praktek tadi bru refresing sama keluarga…
Bolehlah.
GIF
IFS
Asky キラ 11:35:53 PM
Asky キラ
badass... rasanya kyk lagi bikin file exe.
Kalau mau lengkap bisa tambah
Ada web framework buat shell gak ya? Keren juga nih
Jadi semua bisa tahu ini model lama isinya bash semua.
Init 3:34:03 AM
Epsi رزﻗﻲSayidina
[Link] 63/65
1/29/2018 Telegram Web
Epsi رزﻗﻲSayidina 4:02:42 AM
Kalau mau lengkap bisa tambah 1. man file, multi language 2.…
4. Daemonize dengan init.
Mr Hc 8:20:05 AM
Asalmualaikum
8:20:08 AM
Mr Hc
Asalmualaikum
As-salāmu 'alaykum اﻟﺴﻼم ﻋﻠﯿﻜﻢ
Mr Hc 8:23:07 AM
8:23:17 AM
Mr Hc
Mohon bimbingan bang
Scroll saja tiga hari terakhir. Ada dua materi.
Mr Hc 8:24:51 AM
Hehheh 8:24:52 AM
8:24:55 AM
Mr Hc
Siap bang ini lg panjat jempol
hati2, bisa panas meski nggak ada api.
assalamualaikum
salken 10:06:55 AM
[Link] 64/65
1/29/2018 Telegram Web
Abdul Djalil Djayali 1:41:15 PM
ya
halo paman
Hendra 4:44:49 PM
Wa'alaikum salam..
[Link] 5:34:55 PM
Rizqi Maulana
assalammualaikum
walaikum salam stah
pro
6:46:52 PM
[Link] 65/65