DIRENV.TOML(1) User Manuals DIRENV.TOML(1) نام (NAME) direnv.toml - فایل پیکربندی direnv توضیحات (DESCRIPTION) یک فایل پیکربندی در قالب TOML ⟨https://github.com/toml-lang/toml⟩ برای تعیین گزینه‌های پیکربندی گوناگون برای direnv. این فایل از مسیر $XDG_CONFIG_HOME/direnv/direnv.toml (به‌طور معمول ~/.config/direnv/direnv.toml) خوانده می‌شود. برای نسخه‌های v2.21.0 و پایین‌تر، به‌جای direnv.toml از config.toml استفاده کنید قالب (FORMAT) برای جزئیات درباره نحو این فایل پیکربندی، مخزن گیت‌هاب TOML ⟨https://github.com/toml-lang/toml⟩ را ببینید. پیکربندی (CONFIG) پیکربندی در بخش‌هایی مشخص می‌شود که هر یک جدول‌های سطح‌بالای (top-level tables) ⟨https://github.com/toml-lang/toml#table⟩ خود را دارند، و در هر بخش جفت‌های کلید/مقدار تعیین می‌شوند. مثال: [section] key = "value" بخش‌های زیر پشتیبانی می‌شوند: [global] bash_path این گزینه امکان تعیین ثابت (hard-code) مسیر bash را فراهم می‌کند. تنظیم این مورد ممکن است برای جلوگیری از خطای direnv هنگام تغییر یافتن PATH مفید باشد. disable_stdin اگر روی true تنظیم شود، ورودی استاندارد (stdin) در طول ارزیابی .envrc غیرفعال (به /dev/null هدایت) می‌شود. load_dotenv به direnv >= 2.31.0 نیاز است اگر روی true تنظیم شود، علاوه‌بر فایل‌های .envrc، فایل‌های .env را نیز جست‌وجو و بارگذاری می‌کند. اگر هر دو فایل .envrc و .env وجود داشته باشند، همیشه .envrc در اولویت قرار خواهد گرفت. strict_env اگر روی true تنظیم شود، فایل .envrc با set -euo pipefail بارگذاری خواهد شد. این گزینه در آینده پیش‌فرض خواهد بود. warn_timeout مشخص می‌کند چه مدت قبل از اخطار به کاربر مبنی بر طولانی شدن اجرای دستور، صبر شود. مقدار پیش‌فرض "5s" است. رشته بازه زمانی یک دنباله احتمالاً دارای علامت از اعداد ده‌دهی است که هر یک می‌تواند دارای بخش اعشاری اختیاری و یک پسوند یکا باشد؛ مانند "300ms"، "-1.5h" یا "2h45m". یکاهای معتبر زمان عبارتند از "ns" ،"us" (یا "µs") ،"ms" ،"s" ،"m" ،"h". اگر بازه زمانی کمتر یا مساوی صفر باشد، این قابلیت غیرفعال می‌شود. در صورت تنظیم متغیر محیطی DIRENV_WARN_TIMEOUT روی هر یک از مقادیر بالا، این مقدار بازنویسی خواهد شد. hide_env_diff برای پنهان کردن تفاوت (diff) متغیرهای محیطی هنگام بارگذاری .envrc، این مقدار را روی true تنظیم کنید. مقدار پیش‌فرض false است. log_format قالب لاگ را برای خروجی‌های direnv تنظیم می‌کند. برای غیرفعال کردن گزارش‌گیری عادی، آن را روی "-" قرار دهید. به direnv >= 2.36.0 نیاز است log_filter یک عبارت باقاعده (Regexp) که می‌توان از آن برای پالایش (فیلتر کردن) برخی از لاگ‌ها استفاده کرد. به direnv >= 2.36.0 نیاز است [whitelist] مشخص کردن دستورالعمل‌های لیست سفید، سلسله‌مراتب‌های دایرکتوری خاص یا دایرکتوری‌های مشخصی را به‌عنوان «قابل اعتماد» علامت‌گذاری می‌کند -- direnv بدون در نظر گرفتن اینکه فایل‌های .envrc منطبق به‌طور صریح مجاز شده‌اند یا خیر، آن‌ها را ارزیابی می‌کند. از این قابلیت باید با احتیاط زیاد استفاده شود، زیرا هر کسی با توانایی نوشتن فایل در آن دایرکتوری (شامل مشارکت‌کنندگان در مخازن VCS) قادر خواهد بود کدهای دلخواه را روی رایانه شما اجرا کند. دو نوع دستورالعمل لیست سفید پشتیبانی می‌شود: prefix آرایه‌ای از رشته‌ها را می‌پذیرد. اگر هر یک از رشته‌های موجود در این فهرست، پیشوندی از مسیر مطلق یک فایل .envrc باشد، آن فایل بدون توجه به محتوا یا سابقه استفاده از direnv allow یا direnv deny، به‌طور ضمنی مجاز خواهد بود. مثال: [whitelist] prefix = [ "/home/user/code/project-a", "~/code/project-b" ] در این مثال، فایل‌های .envrc زیر به‌طور ضمنی مجاز خواهند بود: • /home/user/code/project-a/.envrc • /home/user/code/project-a/subdir/.envrc • ~/code/project-b/.envrc • ~/code/project-b/subdir/.envrc • و غیره در این مثال، فایل‌های .envrc زیر به‌طور ضمنی مجاز نخواهند بود (اگرچه می‌توان آن‌ها را به‌صورت صریح با اجرای direnv allow مجاز کرد): • /home/user/project-c/.envrc • /opt/random/.envrc exact آرایه‌ای از رشته‌ها را می‌پذیرد. هر رشته می‌تواند نام یک دایرکتوری یا مسیر کامل به یک فایل .envrc باشد. اگر نام یک دایرکتوری فرستاده شود، به‌گونه‌ای رفتار خواهد شد که گویی همان مسیر به همراه /.envrc اضافه شده در انتهای آن ارسال شده است. پس از حل نام فایل، هر رشته برای تطابق دقیق با مسیر مطلق یک فایل .envrc بررسی می‌شود. اگر دقیقاً منطبق باشند، آن فایل .envrc بدون توجه به محتوا یا سابقه استفاده از direnv allow یا direnv deny، به‌طور ضمنی مجاز خواهد بود. مثال: [whitelist] exact = [ "/home/user/project-a/.envrc", "~/project-b/subdir-a" ] در این مثال، فایل‌های .envrc زیر به‌طور ضمنی مجاز خواهند بود و نه هیچ فایل دیگری: • /home/user/code/project-a/.envrc • ~/project-b/subdir-a در این مثال، فایل‌های .envrc زیر به‌طور ضمنی مجاز نخواهند بود (اگرچه می‌توان آن‌ها را به‌صورت صریح با اجرای direnv allow مجاز کرد): • /home/user/code/project-b/subproject-c/.envrc • ~/code/.envrc کپی‌رایت و تکثیر (COPYRIGHT) مجوز MIT - حق نشر (C) ۲۰۱۹ @zimbatm و مشارکت‌کنندگان همچنین ببینید (SEE ALSO) direnv(1), direnv-stdlib(1) direnv 2019 DIRENV.TOML(1)