Membuat Script Shell di Deno

21 Sep 2020

Shebang adalah tanda #! pada shell script di linux, shell bash/zsh/yang lain menggunakan shebang untuk mendeteksi script tersebut akan dijalankan dengan perintah apa. Awal shell script biasanya seperti ini #!/usr/bin/env nama_perintah.

Contoh Shell script berikut ini akan dijalankan menggunakan php

#!/usr/bin/env php
<?php
echo phpversion();

Maka jika shell script di atas dijalankan shell akan menggunakan perintah php untuk menjalankannya.

Shell script berikut ini akan dijalankan menggunakan python

#!/usr/bin/env python3

langs = ['PHP', 'Javascript', 'Rust', 'Elixir', 'Go']
for lang in langs:
    print(lang)

Maka jika shell script di atas dijalankan shell akan menggunakan perintah python3 untuk menjalankannya dan seterusnya.

Kasus kali ini agak berbeda ketika saya mencoba membuat shell dengan Deno sebagai executornya. Pernah mencoba membuat shell script agar Deno langsung bisa dijalankan dengan perintah shell seperti ini ./scrip_name ?. Namun karena Deno ada tambahan perizinan dan command run maka jika shell script kita seperti di bawah akan terjadi error.

#!/usr/bin/env deno

Bagaimana agar shell script kita sama seperti pada saat kita menjalankan deno run --allow-read --unstable read_json.ts ?. Setelah saya cari di google ternyata ada tambahan argumen -S pada perintah env agar shell script dapat menerima argumen tambahan dari Deno.

#!/usr/bin/env -S deno run --allow-read --unstable

import { readJson } from "https://deno.land/std@0.54.0/fs/mod.ts";

const content = await readJson("hello.json");
console.log(content);

Sekian, semoga bermanfaat.