| JPM(1) | General Commands Manual | JPM(1) |
نام (NAME)
jpm - مدیر پروژه Janet، ابزاری برای ساخت پروژههای Janet
خلاصه دستور (SYNOPSIS)
jpm [--flag ...] [--option=value ...] command args...
توضیحات (DESCRIPTION)
دستور jpm برای ساخت پروژههای Janet، نصب وابستگیها، نصب پروژهها، ساخت ماژولهای بومی (native) و صدور پروژهٔ Janet شما بهصورت یک فایل اجرایی مستقل به کار میرود. اگرچه برای کار با Janet ضروری نیست، اما بسیاری از کارهای تکراری و پیشنیاز را هنگام نصب وابستگیها و ساخت ماژولهای بومی برطرف میکند. اجرای jpm تنها به janet نیاز دارد و برای نصب وابستگیها از git استفاده میکند (jpm بدون نصب بودن git نیز کار خواهد کرد).
مستندات (DOCUMENTATION)
دستور jpm دارای چندین زیردستور است که هر کدام برای مدیریت یک پروژهٔ منفرد Janet یا تمام ماژولهای Janet نصبشده روی سیستم به کار میروند. دستورهای سراسری (global)، که ماژولها را در سطح سیستم مدیریت میکنند، کارهایی مانند نصب و حذف بستهها و همچنین پاکسازی حافظهٔ پنهان را انجام میدهند. دستورهای محلی (local) جالبتر و کاربردیتر هستند. برای اطلاعات بیشتر در مورد استفاده از jpm، پیوند https://janet-lang.org/docs/index.html را ببینید.
برای اطلاعات دربارهٔ پرچمها، مستندات راهنمای درون خود ابزار را ببینید.
دستورها (COMMANDS)
- help
- متن راهنمای استفاده را نمایش داده و بلافاصله خارج میشود.
- build
- تمام مصنوعات (artifacts) مشخصشده در فایل project.janet در دایرکتوری جاری را میسازد. مصنوعات در دایرکتوری ./build/ ایجاد خواهند شد.
- configure[path]
- یک دایرکتوری برای ساختهای خارج از درخت سورس (out-of-tree) ایجاد کرده و همچنین گزینههای پروژه را تنظیم میکند. در حالی که jpm نیازی به مرحلهٔ صریح پیکربندی ندارد، این دستور میتواند برای جلوگیری از نیاز به تنظیم مکرر گزینههای مشابه استفاده شود. ساختهای out-of-tree همچنین روش مناسبی برای داشتن چندین پیکربندی بهطور همزمان هستند، مانند ساخت انتشار (release) و ساخت اشکالزدایی (debug).
- install [repo...]
- هنگامی که بدون آرگومان اجرا شود، تمام مصنوعات قابل نصب در پروژهٔ جاری را در JANET_MODPATH جاری برای ماژولها و JANET_BINPATH برای برنامههای اجرایی و اسکریپتها نصب میکند. همچنین میتواند یک آدرس اختیاری از مخزن git را دریافت کرده و در عوض، تمام مصنوعات موجود در آن مخزن را نصب کند. هنگامی که با یک آرگومان اجرا شود، نیازی نیست install از داخل دایرکتوری پروژهٔ jpm اجرا گردد. همچنین میتواند چندین وابستگی را در قالب یک دستور نصب کند.
- update-installed
- تمام بستههای نصبشده را به آخرین نسخه بهروزرسانی میکند. این کار با نصب مجدد از سیستم کنترل نسخه با آخرین برچسب (tag) موجود برای هر بسته انجام میشود. ممکن است بستههایی که با یک برچسب خاص نصب شدهاند را بازنویسی کند.
- uninstall [name...]
- پروژهای که با install نصب شده است را حذف میکند. دستور uninstall انتظار دریافت نام پروژه را دارد، نه آدرس مخزن، مسیر فایل نصبشده یا نام فایل اجرایی. نام پروژه باید در بالای فایل project.janet در بخش declare-project مشخص شده باشد. اگر نامی ارائه نشود، در صورت نصب بودن پروژهٔ جاری، آن را حذف میکند. همچنین میتواند چندین بسته را در یک دستور حذف نماید.
- clean
- تمام مصنوعات ایجاد شده توسط jpm را حذف میکند. این دستور تنها پوشهٔ build را حذف میکند.
- test
- آزمونهای jpm را اجرا میکند. دستور jpm تمام فایلهای منبع janet موجود در دایرکتوری test را بهعنوان آزمون اجرا خواهد کرد. اگر یک آزمون با کد خروج غیر صفر خارج شود، ناموفق تلقی میشود.
- deps
- تمام وابستگیهای مورد نیاز این پروژه را بهصورت بازگشتی نصب میکند. ابزار jpm مشکلات وابستگی را حل نمیکند؛ مانند مواقعی که نسخههای متناقضی از یک ماژول لازم است، یا ماژولهای متفاوتی با نام یکسان وجود دارند. وابستگیها با git نصب میشوند، بنابراین deps نیازمند وجود git در PATH است.
- clear-cache
- ابزار jpm مخازن git مورد نیاز برای نصب ماژولها از منبع دوردست را در یک حافظهٔ پنهان سراسری ($JANET_PATH/.cache) ذخیره میکند. اگر این وابستگیها قدیمی یا بیش از حد حجیم شوند، clear-cache حافظهٔ پنهان را حذف کرده و jpm در صورت نیاز دوباره آن را میسازد. دستور clear-cache یک دستور سراسری است، بنابراین نیازی به وجود فایل project.janet نیست.
- list-installed
- تمام بستههای نصبشده در syspath جاری را فهرست میکند.
- list-pkgs [search]
- تمام نامهای مستعار بستهها را در فهرست بستهٔ جاری که حاوی رشتهٔ جستجوی دادهشده هستند، فهرست میکند. اگر رشتهٔ جستجویی داده نشود، کل فهرست را چاپ میکند.
- clear-manifest
- ابزار jpm یک دایرکتوری مانیفست ایجاد میکند که شامل فهرستی از تمام فایلهای نصبشده است. با حذف این دایرکتوری، jpm چنین تصور میکند که چیزی نصب نشده است و در زمان اجرای دستورهای jpm deps یا jpm load-lockfile تلاش میکند همه چیز را مجدداً نصب کند. در استفاده از این دستور احتیاط کنید، زیرا ممکن است فایلهای اضافی روی سیستم شما باقی بگذارد و در بیشتر مواقع در یک نصب سالم به آن نیازی نیست.
- run [rule]
- قاعدهٔ (rule) معینِ تعریفشده در project.janet را اجرا میکند. فایلهای تعاریف پروژه (project.janet) معمولاً شامل چند اعلانِ مصنوع هستند که قواعدی را تعیین میکنند تا jpm بتواند آنها را حل یا اجرا کند. یک project.janet همچنین میتواند مانند make، قواعد سفارشی برای ایجاد فایلهای دلخواه یا اجرای کدهای دلخواه ایجاد نماید. دستور run یک قاعدهٔ منفرد را اجرا کرده یا یک فایل را میسازد.
- rules
- تمام قواعدی که میتوانند از طریق run اجرا شوند را فهرست میکند. این دستور برای بررسی قواعد موجود در پروژه مفید است.
- rule-tree [root] [depth]
- درخت وابستگی قواعد را با قالبی زیبا نمایش میدهد. بهصورت اختیاری میتوان یک قاعده را بهعنوان ریشهٔ درخت و همچنین حداکثر عمق برای چاپ را تعیین کرد. بهطور پیشفرض، درخت کامل را برای تمام قواعد چاپ میکند. این خروجی میتواند بسیار طولانی باشد، بنابراین پیشنهاد میشود یک قاعدهٔ ریشه تعیین کنید.
- show-paths
- تمام مسیرهای استفادهشده هنگام نصب و ساخت مصنوعات را نمایش میدهد.
- update-pkgs
- فهرست بستهها را با نصب بستهٔ 'pkgs' بهروزرسانی میکند. معادل با jpm install pkgs است.
- quickbin [entry] [executable]
- یک فایل اجرایی مستقل با پیوند ایستا (statically linked) از یک فایل منبع Janet که حاوی تابع main باشد ایجاد میکند. تابع main نقطهٔ ورود برنامه است و آرگومانهای خط فرمان را بهعنوان آرگومانهای تابع دریافت میکند. فایل ورودی میتواند ماژولهای دیگر، از جمله ماژولهای بومی C را وارد (import) کند، و jpm تلاش خواهد کرد تا این وابستگیها را در فایل اجرایی تولیدشده بگنجاند.
- repl
- یک repl را در همان محیطِ آزمون اجرا میکند. به شما اجازه میدهد تا بدون نیاز به نصب ماژولهای بومی ساختهشده، از آنها استفاده کنید.
- debug-repl
- فایل project.janet جاری را بارگذاری کرده و یک repl در محیط آن آغاز میکند. این کار به کاربر امکان میدهد فایل پروژه را بهتر اشکالزدایی کرده و قواعد را بهصورت دستی اجرا کند.
- make-lockfile [filename]
- یک lockfile ایجاد میکند. یک lockfile سندی است که وابستگیهای نصبشده در زمان ایجاد lockfile، از جمله نسخههای دقیق را توصیف میکند. پس از آن میتوان از طریق load-lockfile از این فایل برای برپاسازی همان محیط روی یک ماشین دیگر استفاده کرد. بهطور پیشفرض، lockfile در lockfile.jdn ایجاد میشود، اگرچه از هر مسیری میتوان استفاده کرد.
- load-lockfile [filename]
- وابستگیها را از یک lockfile که قبلاً با make-lockfile ایجاد شده است، نصب میکند. بهطور پیشفرض به دنبال یک lockfile در مسیر lockfile.jdn میگردد، هرچند از هر مسیری میتوان استفاده کرد.
- new-project [name]
- یک پروژهٔ جدید Janet را بهصورت تعاملی در دایرکتوری "name" ایجاد میکند.
- new-c-project [name]
- یک پروژهٔ جدید C+Janet را بهصورت تعاملی در دایرکتوری "name" ایجاد میکند.
- new-exe-project [name]
- یک پروژهٔ جدید برای یک فایل اجرایی بهصورت تعاملی در دایرکتوری "name" ایجاد میکند.
محیط (ENVIRONMENT)
JANET_TREE
JANET_PATH
JANET_MODPATH
JANET_HEADERPATH
JANET_LIBPATH
JANET_BINPATH
JANET_BUILDPATH
JANET_PKGLIST
JANET_GIT
JANET_JPM_CONFIG
نویسندگان (AUTHORS)
نوشتهشده توسط Calvin Rose <calsrose@gmail.com>