DUNE-PRINTENV(1) Dune Manual DUNE-PRINTENV(1)

dune-printenv - نام مستعاری برای دستور env (چاپ متغیرهای محیطی)

dune printenv [OPTION]… [PATH]

دستور dune printenv یک نام مستعار برای dune env است.

برای جزئیات بیشتر به dune env --help مراجعه کنید.

مشابه --action-stdout-on-success اما برای خروجی استاندارد خطا به جای خروجی استاندارد. یک مقدار پیش‌فرض مناسب برای مخازن بزرگ تک‌ریپو (monorepo) گزینهٔ --action-stdout-on-success=swallow --action-stderr-on-success=must-be-empty است. این کار تضمین می‌کند که یک ساخت موفق، خروجی خالی و «تمیز» داشته باشد.
نحوه مدیریت خروجی استاندارد عملیات‌ها را در صورت موفقیت مشخص می‌کند. مقادیر ممکن عبارتند از: print برای چاپ مستقیم آن در خروجی Dune، swallow برای نادیده گرفتن کامل آن، و must-be-empty برای الزام به اینکه عملیات هیچ خروجی چاپ نکرده باشد. با مقدار must-be-empty، اگر عملیاتی چیزی در خروجی استاندارد خود چاپ کند، Dune آن را ناموفق تلقی خواهد کرد. مقدار پیش‌فرض print است.
نمایش اطلاعات ساخت.
جداسازی پیام‌های خطا با یک خط خالی.
زمان گزارش خطاهای ساخت را کنترل می‌کند. مقدار early خطاها را به محض شناسایی گزارش می‌دهد. مقدار deterministic خطاها را در پایان ساخت با ترتیبی معین و قطعی گزارش می‌کند. مقدار twice هر خطا را دو بار گزارش می‌دهد: یک بار به محض شناسایی و بار دیگر در پایان ساخت با ترتیبی قطعی.
اجبار به اجرای مجدد عملیات‌های مرتبط با نام‌های مستعار (alias)، حتی اگر وابستگی‌های آن‌ها تغییر نکرده باشد.
فقط چاپ این فیلد. این گزینه را می‌توان چندین بار برای چاپ چندین فیلد تکرار کرد.
سازوکار تشخیص تغییرات در کد منبع. مقدار automatic باعث می‌شود dune یک برنامه خارجی را برای تشخیص تغییرات اجرا کند. مقدار manual برای اطلاع‌رسانی دستی تغییر فایل‌ها به dune استفاده می‌شود.
مشابه [--watch]، اما تنها زمانی فرایند ساخت را آغاز می‌کند که از طریق یک فراخوانی RPC خارجی دستور داده شود.
تنظیم حالت محیط ایزوله (sandboxing). برخی عملیات‌ها به حالت ایزولاسیون خاصی نیاز دارند و این تنظیم را نادیده می‌گیرند. مقادیر مجاز عبارتند از: none، symlink، copy، hardlink.
توقف فرایند ساخت به محض برخورد با اولین خطا.
به جای پایان دادن به فرایند ساخت پس از تکمیل، به طور مداوم منتظر تغییرات فایل‌ها می‌ماند.
ابزار Dune محتوای فایل‌ها را برای بهبود عملکرد افزایشی خلاصه (digest) می‌کند. این دایجست‌ها خود حافظه پنهان دارند. در برخی موارد، Dune برای تضمین قابلیت اطمینان، باید برخی از مدخل‌های کش دایجست را دور بیندازد. این گزینه باعث می‌شود Dune منتظر جلو رفتن ساعت فایل‌سیستم بماند تا نیازی به دور انداختن هیچ مدخلی نباشد. احتمالاً نیازی به این گزینه نخواهید داشت؛ این گزینه بیشتر برای توسعه‌دهندگان Dune مفید است تا تست‌های Dune روی حافظه پنهان دایجست تکرارپذیرتر شوند.

این گزینه‌ها میان تمامی دستورها مشترک هستند.

همیشه خط فرمان کامل برنامه‌های اجرا شده توسط dune را نمایش می‌دهد.
ترفیع خودکار فایل‌ها. این عمل مشابه اجرای دستور dune promote پس از ساخت است.
دایرکتوری ساخت مشخص‌شده. در صورت عدم تعیین، مقدار پیش‌فرض _build است.
فعال یا غیرفعال کردن حافظه پنهان Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). پیش‌فرض `enabled-except-user-rules` است.
بررسی تکرارپذیری ساخت با اجرای مجدد قواعد به‌صورت تصادفی و مقایسه نتایج آن‌ها با موارد ذخیره‌شده در حافظه پنهان Dune. توجه: با افزایش احتمال این بررسی‌ها، سرعت ساخت کاهش می‌یابد. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
حالت ذخیره‌سازی حافظه پنهان Dune (یکی از مقادیر auto، hardlink یا copy). پیش‌فرض `hardlink` است.
بارگذاری این فایل پیکربندی به جای فایل پیش‌فرض.
همیشه ردیابی پشته استثناها (backtraces) را چاپ می‌کند.
در صورت بروز خطا، مسیر وابستگی از هدف‌های مشخص‌شده در خط فرمان تا قاعده‌ای که با شکست مواجه شده را چاپ می‌کند.
هنگام ساخت بسته‌ها، همیشه گزارش‌های استاندارد را چاپ می‌کند.
تنظیم هدف پیش‌فرضی که در صورت عدم تعیین هدف برای دستور dune build استفاده می‌شود.
دستور شل مورد استفاده برای مقایسه (diff) فایل‌ها. از - برای غیرفعال کردن چاپ تفاوت‌ها استفاده کنید.
غیرفعال کردن تمام قواعد ترفیع (promotion).
کنترل حالت نمایش Dune. برای جزئیات بیشتر به dune-config(5) مراجعه کنید. مقادیر معتبر برای این گزینه عبارتند از: progress، verbose، short، quiet یا tui.
تخلیه آمار جمع‌آوری زباله (GC) در یک فایل پس از تکمیل ساخت.
نمایش این راهنما در قالب FMT. مقدار FMT باید یکی از موارد auto، pager، groff یا plain باشد. با مقدار auto، هر زمان که متغیر محیطی TERM برابر با dumb یا تعریف‌نشده باشد، قالب به‌صورت pager یا plain خواهد بود.
نادیده گرفتن قواعد دارای (mode promote)، به جز مواردی با (only ...). متغیر %{ignoring_promoted_rules} در فایل‌های dune مشخص می‌کند که این گزینه داده شده است یا خیر.
فعال‌سازی ابزاردقیق‌سازی (instrumentation) توسط BACKENDS. مقدار BACKENDS فهرستی از نام‌های کتابخانه جداشده با کاما است که هر یک از آن‌ها باید یک بک‌اند ابزاردقیق را اعلان کرده باشد.
اجرای حداکثر JOBS دستور به‌طور همزمان. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
خروجی دستورات اجرا شده توسط dune را بافر نمی‌کند. به‌طور پیش‌فرض، dune خروجی زیردستورها را بافر می‌کند تا از تداخل خروجی هنگام اجرای موازی چندین دستور جلوگیری شود. با این حال، این موضوع هنگام اشکال‌زدایی تست‌های طولانی‌مدت می‌تواند مشکل‌ساز باشد. با گزینهٔ --no-buffer، دستورات دسترسی مستقیم به ترمینال دارند. توجه داشته باشید که در نتیجه این کار، خروجی آن‌ها در فایل گزارش (log) ثبت نخواهد شد. برای جلوگیری از تداخل، باید از این گزینه همراه با -j 1 استفاده کنید. علاوه بر این، باید از --verbose نیز استفاده کنید تا مطمئن شوید دستورات قبل از اجرا چاپ می‌شوند.
عدم بارگذاری فایل پیکربندی.
پنهان کردن پیام‌های ورود به دایرکتوری ("Entering directory").
نادیده گرفتن بخش‌های (stanzas) مربوط به بسته‌ای که در PACKAGES نیست. مقدار PACKAGES فهرستی از نام‌های بسته جداشده با کاما است. توجه داشته باشید که این کار تأثیری مشابه حذف بخش‌های مربوطه از فایل‌های dune دارد. این گزینه عمدتاً برای انتشار (release) در نظر گرفته شده است. در طول فرایند توسعه، احتمالاً چیزی که می‌خواهید ساخت یک هدف خاص <package>.install است.
کوتاه‌نوشتی برای --release --pkg=disabled --only-packages PACKAGE. شما باید از این گزینه در فایل‌های <package>.opam خود استفاده کنید تا در صورت وجود چندین بسته در پروژه، فقط موارد ضروری ساخته شوند و ساخت‌های تکرارپذیر حاصل شود.
فعال یا غیرفعال کردن مدیریت بسته. رفتار پیش‌فرض بستگی به این دارد که دایرکتوری قفل (lock directory) وجود داشته باشد یا خیر.
انتخاب پروفایل ساخت، برای مثال dev یا release. مقدار پیش‌فرض dev است.
ترفیع فایل‌های <package>.install تولیدشده به درخت منبع پروژه.
قرار دادن dune در حالت تکرارپذیر انتشار (release). کوتاه‌نوشتی برای --root . --ignore-promoted-rules --no-config --profile release --always-show-command-line --promote-install-files --require-dune-project-file --default-target @install. شما باید از این گزینه برای ساخت‌های انتشار استفاده کنید. برای مثال، باید از این گزینه در فایل‌های <package>.opam خود استفاده کنید؛ مگر اینکه از قبل از -p استفاده کرده باشید، چرا که -p این گزینه را در بر دارد.
در صورت عدم وجود فایل dune-project، با خطا مواجه می‌شود.
استفاده از این دایرکتوری به عنوان ریشه فضای کاری به جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر هدف‌های داده‌شده در خط فرمان را تغییر نمی‌دهد و تنها برای اسکریپت‌ها در نظر گرفته شده است.
ذخیره مکان اصلی منبع در فراداده‌های dune-package.
دستور پوششی برای اجرای باینری‌های مقصد هنگام کامپایل متقاطع (cross-compiling). قالب: TOOLCHAIN=CMD (به عنوان مثال، 'windows=wine').
تغییر نحوه نمایش گزارش نتایج ساخت در کنسول بین بازساخت‌ها در حالت --watch. حالت‌های پشتیبانی‌شده عبارتند از: preserve، clear-on-rebuild، clear-on-rebuild-and-flush-history.
خروجی داده‌های ردگیری در قالب catapult (سازگار با chrome://tracing).
مشابه --display verbose.
نمایش اطلاعات نسخه.
افزودن یک عبارت باقاعده POSIX که دایرکتوری‌های منطبق را از `dune build --watch` مستثنی می‌کند. گزینهٔ --watch-exclusions را می‌توان برای افزودن چندین استثنا تکرار کرد. همچنین می‌توان از نقطه‌ویرگول (;) به عنوان جداکننده استفاده کرد. اگر هیچ استثنایی مشخص نشود، یک مجموعه پیش‌فرض از استثناها استفاده می‌شود؛ با این حال، اگر یک یا چند گزینهٔ --watch-exclusions استفاده شود، هیچ‌یک از استثناهای پیش‌فرض اعمال نخواهند شد. استثناهای پیش‌فرض عبارتند از: ^_opam /_opam ^_esy /_esy ^.#.* /.#.* ~$ ^#[^#]*#$ /#[^#]*#$ ^4913$ /4913$ /.git /.hg :/windows
استفاده از این فایل فضای کاری مشخص به جای جستجوی آن.
کامپایل متقاطع با استفاده از این زنجیره ابزار.

برای دریافت راهنما دربارهٔ یک دستور خاص، از dune COMMAND --help استفاده کنید.

دستور dune printenv با مقادیر زیر خارج می‌شود:

0
در صورت موفقیت.
1
در صورت بروز خطا.
130
اگر با یک سیگنال متوقف شود.

این متغیرهای محیطی بر اجرای printenv تأثیر می‌گذارند:

دایرکتوری ساخت مشخص‌شده. در صورت عدم تعیین، _build است.
فعال یا غیرفعال کردن حافظه پنهان Dune (یکی از مقادیر disabled، enabled-except-user-rules یا enabled). پیش‌فرض `enabled-except-user-rules` است.
بررسی تکرارپذیری ساخت با اجرای مجدد قواعد به‌صورت تصادفی و مقایسه نتایج آن‌ها با موارد ذخیره‌شده در حافظه پنهان Dune. توجه: با افزایش احتمال این بررسی‌ها، سرعت ساخت کاهش می‌یابد. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
حالت ذخیره‌سازی حافظه پنهان Dune (یکی از مقادیر auto، hardlink یا copy). پیش‌فرض `hardlink` است.
کامپایل متقاطع با استفاده از این زنجیره ابزار.
هنگام ساخت بسته‌ها، همیشه گزارش‌های استاندارد را چاپ می‌کند.
دستور شل برای مقایسه (diff) فایل‌ها. از - برای غیرفعال کردن چاپ تفاوت‌ها استفاده کنید.
غیرفعال کردن تمام قواعد ترفیع (promotion).
فعال‌سازی ابزاردقیق‌سازی توسط BACKENDS. مقدار BACKENDS فهرستی از نام‌های کتابخانه جداشده با کاما است که هر یک از آن‌ها باید یک بک‌اند ابزاردقیق را اعلان کرده باشد.
اجرای حداکثر JOBS دستور به‌طور همزمان. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
پروفایل ساخت. dev در صورت عدم تعیین، یا release در صورتی که -p تنظیم شده باشد.
استفاده از این دایرکتوری به عنوان ریشه فضای کاری به جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر هدف‌های داده‌شده در خط فرمان را تغییر نمی‌دهد و تنها برای اسکریپت‌ها در نظر گرفته شده است.
حالت محیط ایزوله (sandboxing) مورد استفاده به‌طور پیش‌فرض (گزینهٔ --sandbox را ببینید).
ذخیره مکان اصلی منبع در فراداده‌های dune-package.
دستور پوششی برای اجرای باینری‌های مقصد هنگام کامپایل متقاطع. قالب: TOOLCHAIN=CMD (به عنوان مثال، 'windows=wine').
استفاده از این فایل فضای کاری مشخص به جای جستجوی آن.

گزارش‌های اشکال را در نشانی زیر بررسی کنید:
https://github.com/ocaml/dune/issues

dune(1)

Dune 3.24.2