once adalah alat baris perintah yang menjalankan sebuah perintah sekali di direktori saat ini, menampilkan stdout-nya, dan menyimpan output tersebut di memori dalam daemon latar belakang kecil per pengguna. Panggilan berulang dengan perintah, direktori, dan kunci tenant yang sama akan dijawab dari memori hingga entri tersebut kedaluwarsa. Daemon berhenti secara otomatis setelah entri terakhirnya kedaluwarsa.
Kasus penggunaan yang umum adalah membaca rahasia dari 1Password tanpa harus menyetujui setiap pembacaan dengan sidik jari Anda. Kunci tenant, yang diatur sekali per sesi terminal di ~/.zshrc, memungkinkan Anda mengekspor token seperti GITHUB_TOKEN dari perintah seperti `once --ttl 8h --no-dir -- op read op://Private/Git Hub/token`. Panggilan pertama meminta autentikasi; panggilan berikutnya dalam delapan jam tidak. Pola yang sama juga berfungsi dengan mise, baik secara global maupun dalam berkas mise.local.toml khusus proyek.
Pemasangan memerlukan Go 1.27 atau yang lebih baru, menggunakan `go install github.com/alex0ptr/once@latest`. Alat ini tidak memiliki dependensi selain pustaka standar dan hanya berjalan di macOS dan Linux. Perintah utamanya adalah `once --ttl DURATION`, `once status` untuk menampilkan daemon dan jumlah entrinya, `once clear` untuk menghapus semua nilai yang di-cache, dan `once help`.
Hanya stdout yang di-cache. Hasil perintah yang keluar dengan kode non-nol tidak pernah di-cache, dan kode keluarnya diteruskan. Secara bawaan, direktori kerja menjadi bagian dari kunci cache, tetapi --no-dir menghilangkannya sehingga satu nilai cache dapat digunakan di semua direktori. Opsi --until menetapkan waktu kedaluwarsa absolut, misalnya pukul 22.00 hari ini atau besok pagi, mana pun yang lebih dulu tercapai bersama --ttl.
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing