once أداة سطر أوامر تنفّذ أمرًا واحدًا مرة واحدة في دليلك الحالي، وتطبع مخرجاته القياسية (stdout)، وتحتفظ بها في الذاكرة ضمن خدمة خلفية (daemon) صغيرة لكل مستخدم. تُلبّى الاستدعاءات المتكررة للأمر نفسه، مع الدليل نفسه ومفتاح المستأجر نفسه، من الذاكرة إلى أن تنتهي صلاحية المدخل. وتتوقف الخدمة تلقائيًا بعد انتهاء صلاحية آخر مدخل فيها.
أما حالة الاستخدام الشائعة فهي قراءة الأسرار من 1Password دون الموافقة على كل قراءة ببصمتك الإصبع. يتيح لك مفتاح المستأجر، الذي يُضبط مرة واحدة لكل جلسة طرفية في ملف ~/.zshrc، تصدير رمز مثل GITHUB_TOKEN من أمر مثل `once --ttl 8h --no-dir -- op read op://Private/Git Hub/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`.
يُخزَّن المخرج القياسي فقط مؤقتًا. ولا تُخزَّن نتائج الأوامر التي تنتهي برمز خروج غير صفري أبدًا، ويُمرَّر رمز الخروج كما هو. ويكون الدليل الحالي جزءًا من مفتاح التخزين المؤقت افتراضيًا، لكن --no-dir يحذفه، فتخدم قيمة مخزنة واحدة جميع الأدلة. ويحدد الخيار --until وقت انتهاء مطلقًا، مثل العاشرة مساءً اليوم أو صباح الغد، أيهما يأتي أولًا مع --ttl.
المصدر: Hacker News · لخّصه HeadlinesBriefing