ros-template(1) ros-template(1)

ros-template - ویرایش و مدیریت قالب‌ها برای ros-init

•
ros template command args...

ایجاد یک قالب جدید در دایرکتوری local-project.
حذف یک قالب از دایرکتوری local-project.
نمایش فهرست فایل‌ها و وضعیت‌های type، chmod و rewrite فایل‌ها در قالب‌ها.
هنگامی که بدون template-name اجرا شود، گزینه‌های قالب‌های جاری را برای کار نشان می‌دهد. در صورت تعیین template-name، آن نام را به عنوان قالب جاری انتخاب می‌کند.
افزودن فایل‌ها به قالب جاری. هنگامی که قالب جاری default باشد، پارامتر اول می‌تواند به عنوان template-name در نظر گرفته شود.
نمایش محتوای فایل‌ها در قالب جاری.
ویرایش محتوای فایل‌ها در قالب با استفاده از /usr/bin/editor.
نمایش مسیر بومی فایل‌ها در قالب.
حذف فایل از قالب جاری.
تغییر نوع فایل. انتخاب‌های کنونی برای type شامل djula یا copy هستند. متغیرهای {{name}}، {{author}}، {{email}} و {{universal_time}} در فایل قالب در دسترس هستند. بدون مشخص کردن فایل‌ها، نوع پیش‌فرض تغییر می‌یابد.
تغییر بیت‌های حالت (mode) فایل برای تولید. حالت را در قالب هشت‌هشتی (octal) مشخص کنید.
تغییر نام فایل با استفاده از قالب Djula. متغیرهای {{name}}، {{author}}، {{email}} و {{universal_time}} برای rewrite-rule در دسترس هستند.
برون‌بری فایل‌های موجود در قالب جاری به دایرکتوری جاری.
درون‌ریزی قالب در دایرکتوری جاری.
نمایش راهنمای زیردستور.

دستور ros-template(1) قالب‌های پروژه‌ها را مدیریت می‌کند.

ابتدا، زیردستور init یک قالب خالی ایجاد می‌کند.

$ ros template init sample-template

بسیاری از زیردستورها یک نام قالب را به عنوان آرگومان نخست دریافت می‌کنند. اما می‌توانید با استفاده از زیردستور checkout از ذکر آن صرف‌نظر کنید. پس از دستور زیر، این زیردستورها روی sample-template اعمال می‌شوند.

$ ros template checkout sample-template

سپس، زیردستور add فایل(های) محلی را به قالب می‌افزاید. سپس زیردستور list اطلاعات فایل‌های موجود در قالب را نشان می‌دهد.

$ echo "Hello {{ author }}!!" > sample.txt
$ ros template add sample.txt
$ ros template list
      copy  sample.txt 

واژه copy بیانگر یک راهبرد در زمان اعمال قالب است. ۲ راهبرد زیر وجود دارند:

•
راهبرد copy فایل را دقیقاً همان‌گونه که هست کپی می‌کند.
•
راهبرد djula محتوای فایل را با موتور قالب Djula پردازش می‌کند (http://mmontone.github.io/djula).
•
متغیرهای قابل استفاده در ادامه توضیح داده شده‌اند.

زیردستور type آن را تغییر می‌دهد. علاوه بر این، راهبرد پیش‌فرض (copy) را می‌توان برای هر قالب با زیردستور type بدون نام فایل تغییر داد (مثال: ros template type djula).

$ ros template type djula sample.txt
$ ros template list
      djula sample.txt 

فایل sample.txt به صورت پیش‌فرض صرفاً به عنوان sample.txt خروجی داده خواهد شد. اما می‌توانید آن را با زیردستور rewrite تغییر دهید. در مثال زیر، خروجی به صورت sample_<project name>.txt خواهد بود.

$ ros template rewrite sample.txt "sample-{{ name }}.txt"
$ ros template list
      djula sample.txt -> "sample-{{ name }}.txt"

نکته: قواعد بازنویسی صرف‌نظر از راهبرد فایل، همیشه توسط Djula پردازش می‌شوند.

در دستور ros-init(1) می‌توان یک قالب را تعیین کرد.

$ mkdir temp ; cd temp
$ ros init sample-template some-project
$ ls
sample-some-project.txt
$ cat sample-some-project.txt # Assume that "author" is "alien"
Hello alien!!

نام فایل و محتوای آن همان‌گونه که در بالا توضیح داده شد توسط Djula پردازش می‌شوند. متغیرهای زیر به صورت پیش‌فرض قابل استفاده هستند:

•
{{name}}: نام پروژه مشخص‌شده در ros-init(1)
•
{{author}}: نام نویسنده استخراج‌شده از پیکربندی Git یا خروجی دستور whoami
•
{{email}}: نشانی ایمیل استخراج‌شده از پیکربندی Git یا ایجادشده با whoami و hostname
•
{{universal_time}}: زمان جهانی ایجادشده توسط تابع get-universal-time

علاوه بر این، می‌توانید متغیرهای اختصاصی خود را مانند زیر به کار ببرید:

$ echo "Hello {{ area }}!!" > 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!!

در اصل، دستور ros-template(1) برای مدیریت داخلی فایل‌های افزوده‌شده طراحی شده است.

با این حال، اگر مایلید به عنوان مثال آن را با Git در یک دایرکتوری محلی مدیریت کنید یا قالب‌های توزیع‌شده را نصب نمایید، می‌توانید از زیردستورهای export و import استفاده کنید.

ابتدا، زیردستور export فایل‌های افزوده و یک فایل تنظیمات roswell.init.<template name>.asd را که به طور داخلی ایجاد و ویرایش شده است، برون‌بری می‌کند.

$ ros template export dir
$ ls dir
roswell.init.sample-template.asd  sample.txt
$ cat dir/sample.txt
Hello {{ area }}!!

سپس، زیردستور import آن‌ها را درون‌ریزی می‌کند.

# Assume that this is another machine...
$ ros template list sample-template # nothing is output 
$ ls downloaded
roswell.init.sample-template.asd  sample.txt
$ ros template import downloaded
$ ros template list sample-template
      djula sample.txt -> "sample-{{ name }}.txt"

نکته: در صورت وجود قالبی با همان نام، بازنویسی خواهد شد.

ros(1) ros-init(1)

تیم پروژه Roswell.