DUNE-FMT(1) Dune Manual DUNE-FMT(1)

dune-fmt - قالب‌بندی کد منبع

dune fmt [OPTION]…

دستور dune fmt ابزار قالب‌بندی را روی کد منبع اجرا می‌کند. ابزار قالب‌بند به‌طور خودکار انتخاب می‌شود. از ocamlformat برای قالب‌بندی کد منبع OCaml (فایل‌های *.ml و *.mli) و از refmt برای قالب‌بندی کد منبع Reason (فایل‌های *.re و *.rei) استفاده می‌شود.

--action-stderr-on-success=VAL
مشابه --action-stdout-on-success اما به‌جای خروجی استاندارد برای خطای استاندارد اعمال می‌شود. یک پیش‌فرض مناسب برای مخازن بزرگ تک‌ریپویی (mono-repositories)، گزینه --action-stdout-on-success=swallow --action-stderr-on-success=must-be-empty است. این کار تضمین می‌کند که یک ساخت موفق، خروجی خالی و «تمیز» داشته باشد.
--action-stdout-on-success=VAL
چگونگی رفتار با خروجی استاندارد اکشن‌ها در زمان موفقیت آن‌ها را مشخص می‌کند. مقادیر ممکن عبارتند از: print برای چاپ ساده در خروجی Dune، swallow برای نادیده گرفتن کامل آن، و must-be-empty برای الزام به اینکه اکشن هیچ چیزی چاپ نکرده باشد. با مقدار must-be-empty، اگر اکشن چیزی در خروجی استاندارد خود چاپ کرده باشد Dune آن را ناموفق در نظر می‌گیرد. مقدار پیش‌فرض print است.
--build-info
نمایش اطلاعات ساخت.
--display-separate-messages
جداسازی پیام‌های خطا با یک خط خالی.
--error-reporting=VAL (absent=deterministic)
زمان گزارش خطاهای ساخت را کنترل می‌کند. مقدار early خطاها را به محض کشف گزارش می‌کند. مقدار deterministic خطاها را در پایان ساخت و با ترتیبی مشخص گزارش می‌دهد. مقدار twice هر خطا را دو بار گزارش می‌کند: یک بار به محض کشف خطا و بار دیگر در پایان ساخت با ترتیبی معین.
-f, --force
اجرای مجدد اکشن‌های مرتبط با نام‌های مستعار را حتی در صورت عدم تغییر وابستگی‌های آن‌ها تحمیل می‌کند.
--file-watcher=VAL (absent=automatic)
سازوکار تشخیص تغییرات در منبع. مقدار Automatic باعث می‌شود dune برنامه‌ای خارجی را برای تشخیص تغییرات اجرا کند. مقدار Manual برای اعلام دستی تغییر فایل‌ها به dune به کار می‌رود.
--passive-watch-mode
مشابه [--watch]، اما فرایند ساخت را تنها زمانی آغاز می‌کند که از طریق یک تماس RPC خارجی به آن دستور داده شود.
--preview
فقط تغییراتی را که ایجاد خواهند شد بدون اعمال واقعی آن‌ها چاپ می‌کند. این گزینه بر auto-promote اولویت دارد زیرا آن پرچم برای این دستور پیش‌فرض در نظر گرفته می‌شود.
--sandbox=VAL (absent DUNE_SANDBOX env)
تنظیم حالت سندباکس. برخی اکشن‌ها نیازمند حالت سندباکس خاصی هستند، بنابراین این تنظیم را نادیده خواهند گرفت. مقادیر مجاز عبارتند از: none، symlink، copy، hardlink.
--stop-on-first-error
توقف فرایند ساخت به محض مواجهه با اولین خطا.
-w, --watch
به‌جای پایان دادن به فرایند ساخت پس از تکمیل، به‌طور پیوسته منتظر تغییرات فایل می‌ماند.
--wait-for-filesystem-clock
ابزار Dune محتوای فایل را برای کارایی افزایشی بهتر خلاصه‌سازی (digest) می‌کند. این خلاصه‌ها خودشان کش می‌شوند. در برخی موارد، Dune برای اطمینان‌پذیری نیاز دارد برخی از ورودی‌های کش خلاصه را دور بریزد. این گزینه باعث می‌شود Dune منتظر پیش رفتن ساعت سیستم‌فایل بماند تا نیازی به دور ریختن چیزی نباشد. احتمالاً نیازی نیست نگران این گزینه باشید؛ این گزینه بیشتر برای توسعه‌دهندگان Dune جهت تکرارپذیرتر کردن آزمون‌های کش خلاصه Dune مفید است.

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

--always-show-command-line
همیشه خط فرمان کامل برنامه‌های اجراشده توسط dune را نمایش می‌دهد.
--auto-promote
فایل‌ها را به‌طور خودکار ارتقا (promote) می‌دهد. این عملکرد مشابه اجرای dune promote پس از ساخت است.
--build-dir=FILE (absent DUNE_BUILD_DIR env)
دایرکتوری ساخت مشخص‌شده. در صورت عدم تعیین، مقدار پیش‌فرض _build است
--cache=VAL (absent DUNE_CACHE env)
فعال یا غیرفعال کردن کش Dune (یکی از disabled، enabled-except-user-rules یا enabled). مقدار پیش‌فرض `enabled-except-user-rules' است.
--cache-check-probability=VAL (absent DUNE_CACHE_CHECK_PROBABILITY env)
بررسی تکرارپذیری ساخت با اجرای مجدد تصادفی قواعد و مقایسه نتایج آن‌ها با موارد ذخیره‌شده در کش Dune. نکته: افزایش احتمال این بررسی‌ها سرعت ساخت را کاهش می‌دهد. احتمال پیش‌فرض صفر است، یعنی هیچ قاعده‌ای بررسی نمی‌شود.
--cache-storage-mode=VAL (absent DUNE_CACHE_STORAGE_MODE env)
حالت ذخیره‌سازی کش Dune (یکی از auto، hardlink یا copy). پیش‌فرض `hardlink' است.
--config-file=FILE
بارگذاری این فایل پیکربندی به‌جای فایل پیش‌فرض.
--debug-backtraces
همیشه ردپای پشته (backtrace) استثناها را چاپ می‌کند.
--debug-dependency-path
در صورت بروز خطا، مسیر وابستگی از هدف‌های روی خط فرمان تا قاعده‌ای که شکست خورده است را چاپ می‌کند.
--debug-package-logs (absent DUNE_DEBUG_PACKAGE_LOGS env)
همیشه گزارش‌های استاندارد را هنگام ساخت بسته‌ها چاپ می‌کند
--default-target=TARGET (absent=@@default)
تنظیم هدف پیش‌فرضی که در صورت عدم تعیین هدف برای dune build استفاده می‌شود.
--diff-command=VAL (absent DUNE_DIFF_COMMAND env)
دستور شل برای مقایسه (diff) فایل‌ها. از - برای غیرفعال کردن چاپ تفاوت‌ها استفاده کنید.
--disable-promotion (absent DUNE_DISABLE_PROMOTION env)
غیرفعال کردن تمام قواعد ارتقا (promotion)
--display=MODE
کنترل حالت نمایش Dune. برای جزئیات بیشتر به dune-config(5) مراجعه کنید. مقادیر معتبر برای این گزینه عبارتند از progress، verbose، short، quiet یا tui.
--dump-gc-stats=FILE
تخلیه آمار بازیافت حافظه (garbage collector) در یک فایل پس از تکمیل ساخت.
--help[=FMT] (default=auto)
نمایش این راهنما در قالب FMT. مقدار FMT باید یکی از auto، pager، groff یا plain باشد. با انتخاب auto، هر زمان که متغیر محیطی TERM برابر dumb یا تعریف‌نشده باشد، قالب به صورت pager یا plain خواهد بود.
--ignore-promoted-rules
نادیده گرفتن قواعد دارای (mode promote)، به جز مواردی با (only ...). متغیر %{ignoring_promoted_rules} در فایل‌های dune نشان می‌دهد که این گزینه ارائه شده است یا خیر.
--instrument-with=BACKENDS (absent DUNE_INSTRUMENT_WITH env)
فعال‌سازی ابزارسازی (instrumentation) توسط BACKENDS. مقدار BACKENDS فهرستی از نام‌های کتابخانه جداشده با کاما است که هر یک از آن‌ها باید یک پس‌بخش ابزارسازی را تعریف کنند.
-j JOBS (absent DUNE_JOBS env)
اجرای حداکثر JOBS دستور به‌طور هم‌زمان. مقدار JOBS باید یک عدد صحیح مثبت یا auto برای تشخیص خودکار تعداد هسته‌ها (پیش‌فرض) باشد.
--no-buffer
خروجی دستورهای اجراشده توسط dune را بافر نمی‌کند. به‌طور پیش‌فرض dune خروجی زیردستورها را بافر می‌کند تا از درهم‌آمیختگی هنگام اجرای هم‌زمان چند دستور جلوگیری شود. با این حال، این مورد هنگام اشکال‌زدایی آزمون‌های طولانی می‌تواند مشکل‌ساز باشد. با گزینه --no-buffer، دستورها دسترسی مستقیم به ترمینال دارند. توجه داشته باشید که در نتیجه، خروجی آن‌ها در فایل گزارش ثبت نخواهد شد. بهتر است از این گزینه در کنار -j 1 استفاده کنید تا از تداخل خروجی‌ها جلوگیری شود. علاوه بر این، بهتر است از --verbose نیز استفاده کنید تا مطمئن شوید دستورها پیش از اجرا چاپ می‌شوند.
--no-config
فایل پیکربندی را بارگذاری نمی‌کند
--no-print-directory
سرکوب پیام‌های "Entering directory".
--only-packages=PACKAGES
نادیده گرفتن بندهایی (stanzas) که به بسته‌ای خارج از PACKAGES ارجاع می‌دهند. مقدار PACKAGES فهرستی از نام بسته‌ها است که با کاما از هم جدا شده‌اند. توجه داشته باشید که این گزینه اثری مشابه حذف بندهای مربوطه از فایل‌های dune دارد. این گزینه عمدتاً برای نسخه‌های انتشار در نظر گرفته شده است. در طول توسعه، احتمالاً آنچه می‌خواهید ساخت یک هدف خاص <package>.install است.
-p PACKAGES, --for-release-of-packages=PACKAGES (required)
کوتاه‌نوشتی برای --release --pkg=disabled --only-packages PACKAGE. برای ساخت تنها موارد ضروری زمانی که پروژه شما شامل چندین بسته است و همچنین برای دستیابی به ساخت‌های تکرارپذیر، باید از این گزینه در فایل‌های <package>.opam خود استفاده کنید.
--pkg=VAL
فعال یا غیرفعال کردن مدیریت بسته. رفتار پیش‌فرض به وجود یک دایرکتوری قفل (lock) بستگی دارد.
--profile=VAL (absent DUNE_PROFILE env)
انتخاب نمایه (پروفایل) ساخت، برای نمونه dev یا release. مقدار پیش‌فرض dev است.
--promote-install-files[=VAL] (default=true)
ارتقای تمام فایل‌های تولیدشده <package>.install به درخت منبع.
--release
قرار دادن 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 مستلزم این گزینه است.
--require-dune-project-file[=VAL] (default=true)
شکست در صورت عدم وجود فایل dune-project.
--root=DIR (absent DUNE_ROOT env)
استفاده از این دایرکتوری به‌عنوان ریشه فضای کاری به‌جای حدس زدن آن. توجه داشته باشید که این گزینه تفسیر هدف‌های ارائه‌شده در خط فرمان را تغییر نمی‌دهد. این گزینه فقط برای اسکریپت‌ها در نظر گرفته شده است.
--store-orig-source-dir (absent DUNE_STORE_ORIG_SOURCE_DIR env)
ذخیره مکان اصلی منبع در فراداده dune-package.
--target-exec=TOOLCHAIN=CMD (absent DUNE_TARGET_EXEC env)
دستور پوشاننده (wrapper) برای اجرای باینری‌های مقصد هنگام همگردانی متقاطع (cross-compiling). قالب: TOOLCHAIN=CMD (برای نمونه: 'windows=wine').
--terminal-persistence=MODE
تغییر نحوه نمایش گزارش نتایج ساخت در کنسول بین ساخت‌های مجدد در حالت --watch. حالت‌های پشتیبانی‌شده: preserve، clear-on-rebuild، clear-on-rebuild-and-flush-history.
--trace-file=FILE
خروجی دادن داده‌های ردگیری (trace) در قالب catapult (سازگار با chrome://tracing).
--verbose
مشابه --display verbose
--version
نمایش اطلاعات نسخه.
--watch-exclusions=REGEX
یک عبارت باقاعده POSIX اضافه می‌کند که دایرکتوری‌های منطبق را از `dune build --watch` مستثنی می‌کند. گزینه --watch-exclusions می‌تواند برای افزودن چندین مورد استثنا تکرار شود. همچنین می‌توان از نقطه‌ویرگول به‌عنوان جداکننده استفاده کرد. در صورتی که هیچ استثنایی تعیین نشود، یک مجموعه استاندارد از استثناها استفاده می‌شود؛ با این حال، اگر از یک یا چند گزینه --watch-exclusions استفاده شود، هیچ‌یک از استثناهای استاندارد به کار گرفته نمی‌شوند. استثناهای استاندارد عبارتند از: ^_opam /_opam ^_esy /_esy ^\.#.* /\.#.* ~$ ^#[^#]*#$ /#[^#]*#$ ^4913$ /4913$ /.git /.hg :/windows
--workspace=FILE (absent DUNE_WORKSPACE env)
استفاده از این فایل فضای کاری مشخص به‌جای جستجوی آن.
-x VAL (absent DUNE_CROSS_TARGET env)
همگردانی متقاطع با استفاده از این زنجیره ابزار (toolchain).

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

دستور dune fmt با این وضعیت‌ها خارج می‌شود:

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

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

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

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

dune(1)

Dune 3.24.2