.\" Automatically generated by Pandoc 2.5 .\" .TH "ros-template" "1" "" "" "" .hy .SH "نام (NAME)" ros\-template \- ویرایش و مدیریت قالب‌ها برای ros\-init .SH "خلاصه دستور (SYNOPSIS)" .IP \[bu] 2 \f[B]ros template\f[R] command args\&... .SH "زیردستورها (SUBCOMMANDS)" .TP .B init template\-name ایجاد یک قالب جدید در دایرکتوری local\-project. .TP .B deinit template\-name حذف یک قالب از دایرکتوری local\-project. .TP .B list نمایش فهرست فایل‌ها و وضعیت‌های \f[I]type\f[R]، \f[I]chmod\f[R] و \f[I]rewrite\f[R] فایل‌ها در قالب‌ها. .TP .B checkout [template\-name] هنگامی که بدون template\-name اجرا شود، گزینه‌های قالب‌های جاری را برای کار نشان می‌دهد. در صورت تعیین template\-name، آن نام را به عنوان قالب جاری انتخاب می‌کند. .TP .B add [template\-name] [files \&...] افزودن فایل‌ها به قالب جاری. هنگامی که قالب جاری \f[I]default\f[R] باشد، پارامتر اول می‌تواند به عنوان template\-name در نظر گرفته شود. .TP .B cat [template\-name] [files \&...] نمایش محتوای فایل‌ها در قالب جاری. .TP .B edit [template\-name] [files \&...] ویرایش محتوای فایل‌ها در قالب با استفاده از \f[C]/usr/bin/editor\f[R]. .TP .B path [template\-name] [files \&...] نمایش مسیر بومی فایل‌ها در قالب. .TP .B rm [template\-name] [files \&...] حذف فایل از قالب جاری. .TP .B type [template\-name] [type] [files \&...] تغییر نوع فایل. انتخاب‌های کنونی برای \f[I]type\f[R] شامل \f[I]djula\f[R] یا \f[I]copy\f[R] هستند. متغیرهای {{name}}، {{author}}، {{email}} و {{universal_time}} در فایل قالب در دسترس هستند. بدون مشخص کردن فایل‌ها، نوع پیش‌فرض تغییر می‌یابد. .TP .B chmod [template\-name] [mode] [files \&...] تغییر بیت‌های حالت (mode) فایل برای تولید. حالت را در قالب هشت‌هشتی (octal) مشخص کنید. .TP .B rewrite [template\-name] file rewrite\-rule تغییر نام فایل با استفاده از قالب Djula. متغیرهای {{name}}، {{author}}، {{email}} و {{universal_time}} برای rewrite\-rule در دسترس هستند. .TP .B export [template\-name] [directory] برون‌بری فایل‌های موجود در قالب جاری به دایرکتوری جاری. .TP .B import [directory] درون‌ریزی قالب در دایرکتوری جاری. .TP .B help نمایش راهنمای زیردستور. .SH "توضیحات (DESCRIPTION)" .PP دستور \f[I]ros\-template\f[R](1) قالب‌های پروژه‌ها را مدیریت می‌کند. .SS "ایجاد قالب (Create template)" .PP ابتدا، زیردستور \f[C]init\f[R] یک قالب خالی ایجاد می‌کند. .IP .nf \f[C] $ ros template init sample\-template \f[R] .fi .PP بسیاری از زیردستورها یک نام قالب را به عنوان آرگومان نخست دریافت می‌کنند. اما می‌توانید با استفاده از زیردستور \f[C]checkout\f[R] از ذکر آن صرف‌نظر کنید. پس از دستور زیر، این زیردستورها روی \f[C]sample\-template\f[R] اعمال می‌شوند. .IP .nf \f[C] $ ros template checkout sample\-template \f[R] .fi .PP سپس، زیردستور \f[C]add\f[R] فایل(های) محلی را به قالب می‌افزاید. سپس زیردستور \f[C]list\f[R] اطلاعات فایل‌های موجود در قالب را نشان می‌دهد. .IP .nf \f[C] $ echo \[dq]Hello {{ author }}!!\[dq] > sample.txt $ ros template add sample.txt $ ros template list copy sample.txt \f[R] .fi .PP واژه \f[I]copy\f[R] بیانگر یک راهبرد در زمان اعمال قالب است. ۲ راهبرد زیر وجود دارند: .IP \[bu] 2 راهبرد \f[I]copy\f[R] فایل را دقیقاً همان‌گونه که هست کپی می‌کند. .IP \[bu] 2 راهبرد \f[I]djula\f[R] محتوای فایل را با موتور قالب Djula پردازش می‌کند (http://mmontone.github.io/djula). .RS 2 .IP \[bu] 2 متغیرهای قابل استفاده در ادامه توضیح داده شده‌اند. .RE .PP زیردستور \f[C]type\f[R] آن را تغییر می‌دهد. علاوه بر این، راهبرد پیش‌فرض (\f[I]copy\f[R]) را می‌توان برای هر قالب با زیردستور \f[C]type\f[R] بدون نام فایل تغییر داد (مثال: \f[C]ros template type djula\f[R]). .IP .nf \f[C] $ ros template type djula sample.txt $ ros template list djula sample.txt \f[R] .fi .PP فایل \f[C]sample.txt\f[R] به صورت پیش‌فرض صرفاً به عنوان \f[C]sample.txt\f[R] خروجی داده خواهد شد. اما می‌توانید آن را با زیردستور \f[C]rewrite\f[R] تغییر دهید. در مثال زیر، خروجی به صورت \f[C]sample_.txt\f[R] خواهد بود. .IP .nf \f[C] $ ros template rewrite sample.txt \[dq]sample\-{{ name }}.txt\[dq] $ ros template list djula sample.txt \-> \[dq]sample\-{{ name }}.txt\[dq] \f[R] .fi .PP نکته: قواعد بازنویسی صرف‌نظر از راهبرد فایل، همیشه توسط Djula پردازش می‌شوند. .SS "اعمال قالب (Apply template)" .PP در دستور \f[I]ros\-init\f[R](1) می‌توان یک قالب را تعیین کرد. .IP .nf \f[C] $ mkdir temp ; cd temp $ ros init sample\-template some\-project $ ls sample\-some\-project.txt $ cat sample\-some\-project.txt # Assume that \[dq]author\[dq] is \[dq]alien\[dq] Hello alien!! \f[R] .fi .PP نام فایل و محتوای آن همان‌گونه که در بالا توضیح داده شد توسط Djula پردازش می‌شوند. متغیرهای زیر به صورت پیش‌فرض قابل استفاده هستند: .IP \[bu] 2 {{name}}: نام پروژه مشخص‌شده در \f[I]ros\-init\f[R](1) .IP \[bu] 2 {{author}}: نام نویسنده استخراج‌شده از پیکربندی Git یا خروجی دستور \f[C]whoami\f[R] .IP \[bu] 2 {{email}}: نشانی ایمیل استخراج‌شده از پیکربندی Git یا ایجادشده با \f[C]whoami\f[R] و \f[C]hostname\f[R] .IP \[bu] 2 {{universal_time}}: زمان جهانی ایجادشده توسط تابع \f[C]get\-universal\-time\f[R] .PP علاوه بر این، می‌توانید متغیرهای اختصاصی خود را مانند زیر به کار ببرید: .IP .nf \f[C] $ echo \[dq]Hello {{ area }}!!\[dq] > sample.txt $ ros template add sample.txt # Note: It overwrites existing $ mkdir temp ; cd temp $ ros init sample\-template roswell \-\-area 51 $ cat sample\-roswell.txt Hello 51!! \f[R] .fi .SS "برون‌بری و درون‌ریزی قالب (Export and import template)" .PP در اصل، دستور \f[I]ros\-template\f[R](1) برای مدیریت داخلی فایل‌های افزوده‌شده طراحی شده است. .PP با این حال، اگر مایلید به عنوان مثال آن را با Git در یک دایرکتوری محلی مدیریت کنید یا قالب‌های توزیع‌شده را نصب نمایید، می‌توانید از زیردستورهای \f[C]export\f[R] و \f[C]import\f[R] استفاده کنید. .PP ابتدا، زیردستور \f[C]export\f[R] فایل‌های افزوده و یک فایل تنظیمات \f[C]roswell.init.