once একটি কমান্ড-লাইন টুল, যা আপনার বর্তমান ডিরেক্টরিতে একটি কমান্ড একবার চালায়, এর stdout প্রিন্ট করে এবং আউটপুটটি প্রতি ব্যবহারকারীর একটি ছোট ব্যাকগ্রাউন্ড ডিমনে মেমরিতে সংরক্ষণ করে। একই কমান্ড, ডিরেক্টরি ও টেনান্ট কী সহ বারবার করা কল মেমরি থেকে উত্তর পায়, যতক্ষণ না এন্ট্রির মেয়াদ শেষ হয়। সর্বশেষ এন্ট্রির মেয়াদ শেষ হলে ডিমনটি নিজে থেকেই বন্ধ হয়ে যায়।
সাধারণ ব্যবহার হলো প্রতিটি পড়ার জন্য আপনার ফিঙ্গারপ্রিন্ট অনুমোদন না দিয়েই 1Password থেকে সিক্রেট পড়া। প্রতিটি টার্মিনাল সেশনের জন্য ~/.zshrc-তে একবার সেট করা একটি টেনান্ট কী আপনাকে `once --ttl 8h --no-dir -- op read op://Private/Git Hub/token` এর মতো কমান্ড দিয়ে GITHUB_TOKEN-এর মতো টোকেন এক্সপোর্ট করতে দেয়। প্রথম কলটি প্রমাণীকরণ চায়; আট ঘণ্টার মধ্যে পরবর্তী কলগুলো চায় না। একই ধরন mise-এর সাথেও কাজ করে, হয় বিশ্বব্যাপী বা কোনো প্রকল্পের নির্দিষ্ট mise.local.toml ফাইলে।
ইনস্টল করতে Go 1.27 বা তার পরের সংস্করণ লাগে, `go install github.com/alex0ptr/once@latest` ব্যবহার করে। এই টুলের স্ট্যান্ডার্ড লাইব্রেরি ছাড়া অন্য কোনো নির্ভরতা নেই এবং এটি শুধু macOS ও Linux-এ চলে। এর প্রধান কমান্ডগুলো হলো `once --ttl DURATION`, ডিমন ও তার এন্ট্রি সংখ্যা দেখাতে `once status`, সব ক্যাশ করা মান মুছতে `once clear`, এবং `once help`।
শুধু stdout ক্যাশ করা হয়। শূন্য নয় এমন exit code দিয়ে শেষ হওয়া কমান্ডের ফলাফল কখনো ক্যাশ হয় না, এবং exit code অপরিবর্তিতভাবে পাঠানো হয়। ডিফল্টভাবে কার্যকরী ডিরেক্টরি ক্যাশ কীয়ের অংশ, তবে --no-dir তা সরিয়ে দেয়, ফলে একটি ক্যাশ করা মান সব ডিরেক্টরিতে কাজ করে। --until বিকল্প একটি নির্দিষ্ট মেয়াদ-শেষের সময় সেট করে, যেমন আজ রাত ১০টা বা আগামীকাল সকাল, --ttl-এর সাথে যেটি আগে আসে।
উৎস: Hacker News · সারাংশ: HeadlinesBriefing