lx(1) General Commands Manual lx(1)

lx - مدیر بسته‌ای مجلل و مدرن برای زبان لُوآ (Lua)

lx [--dev] [--server] [--extra-servers] [--namespace] [--lua-dir] [--lua-version] [--tree] [--cache-dir] [--data-dir] [--vendor-dir] [--variables] [--profile] [--verbose] [--no-progress] [--no-prompt] [--nvim] [--no-tfa] [--timeout] [--max-jobs] [--no-luarc] [--no-wrap-bin] [--user-agent] [-h|--help] [-V|--version] <subcommands>

یک مدیر بسته مجلل و مدرن برای زبان لُوآ (Lua).

فعال‌سازی مخازن فرعی در سرورهای luarocks برای مشخصات بسته‌های (rockspecs) نسخه‌های در حال توسعه.
دریافت بسته‌ها (rocks) یا مشخصات بسته‌ها (rockspecs) از این سرور (دارای اولویت بالاتر نسبت به فایل پیکربندی).
دریافت بسته‌ها یا مشخصات بسته‌ها از این سرورها علاوه بر سرور اصلی (تنظیمات موجود در فایل پیکربندی را نادیده می‌گیرد).
تعیین فضای‌نام (namespace) سرور luarocks برای استفاده.
تعیین دایرکتوری مورد نظر برای نصب Lua در صورتی که یافت نشود.
تعیین اینکه از کدام نسخه نصب‌شده Lua استفاده شود. نسخه‌های معتبر عبارتند از: '5.1'، '5.2'، '5.3'، '5.4'، '5.5'، 'jit' و 'jit52'. اگر تنظیم نشده باشد، Lux تلاش می‌کند نسخه Lua را شناسایی کند:

• از پروژه جاری، در صورتی که نیازمندی دقیق نسخه Lua در آن مشخص شده باشد.
• از نسخه نصب‌شده Lua که در متغیر محیطی PATH در دسترس است.

مشخص کردن درختی که عملیات روی آن انجام می‌شود. در یک فضای کاری (workspace)، می‌توان از این گزینه برای مشخص کردن یک درخت فضای کاری مستقل (detached) استفاده کرد.
مشخص کردن دایرکتوری حافظه موقت (کَش)، برای مثال برای مانیفست‌های luarocks.
مشخص کردن دایرکتوری داده، که درخت نصب پیش‌فرض کاربر در آن قرار دارد (مانند ‎~/.local/share/lux).
مشخص کردن دایرکتوری حاوی سورس‌کدها و RockSpecهای محلی مستقل (vendored). هنگام ساخت یا نصب یک بسته با این فلگ، Lux منابع را به جای سرور راه دور، از <vendor-dir> دریافت خواهد کرد.
بازنویسی متغیرهای پیکربندی. مثال:

lx -v LUA=/path/to/lua ...

پروفایل ساخت مورد استفاده هنگام کامپایل بسته‌ها. پیش‌فرض: release

مقادیر ممکن:

• release
• dev

نمایش خروجی پرجزئیات از دستورات اجرا شده و فعال‌سازی لاگ‌های DEBUG. برای فعال‌سازی لاگ‌های TRACE، متغیر محیطی RUST_LOG=trace را تنظیم کنید.
عدم چاپ نوارهای پیشرفت یا نشانگرهای چرخان (spinners).
رد کردن اعلان‌ها و انتخاب گزینه پیش‌فرض. نمایش اعلان‌ها به‌طور پیش‌فرض در محیط‌های ترمینال/TTY فعال است.

مقادیر ممکن:

• true
• false

پیکربندی lux برای نصب بسته‌های نئوویما (Neovim).
غیرفعال کردن اعلان‌های کد احراز هویت دومرحله‌ای (2FA). اکیداً توصیه می‌شود به جای آن 2FA را فعال کنید؛ ببینید: https://luarocks.org/settings/two-factor-auth
مدت‌زمان انتظار برای عملیات‌های شبکه، بر حسب ثانیه. مقدار 0 به معنای عدم وجود محدودیت زمانی است (انتظار نامحدود). مقدار پیش‌فرض 30 است.
حداکثر اندازه بافر برای کارهای موازی، مانند دانلود rockspecها و نصب بسته‌ها. مقدار 0 به معنای نامحدود است. مقدار پیش‌فرض 0 است.
عدم تولید یا به‌روزرسانی فایل .luarc.json هنگام ساخت یک پروژه.
پوشش‌بندی نکردن (عدم wrap) اسکریپت‌های اجرایی bin در Lua.
رشته عامل کاربر (User Agent) تنظیمی هنگام ارسال درخواست‌های وب. پیش‌فرض "lux/<version>" است.
چاپ پیام راهنما
چاپ نسخه برنامه

افزودن یک وابستگی به پروژه جاری
ساخت/کامپایل یک پروژه
[آزمایشی] بررسی نوع داده‌ها (Type check) در پروژه جاری بر اساس حاشیه‌نویسی‌های EmmyLua/LuaCATS. از فایل‌های .emmyrc.json و .luarc.json در دایرکتوری پروژه پیروی می‌کند.
تعامل با پیکربندی lux
دستورات داخلی برای اشکال‌زدایی خود ابزار Lux
آماده‌سازی پروژه Lux برای توزیع
نمایش مستندات مربوط به یک بسته (rock) نصب‌شده
دانلود یک فایل بسته (rock) خاص از سرور luarocks
فرمت‌بندی کدهای پروژه با استفاده از stylua
تولید یک فایل rockspec از روی یک پروژه
نمایش متادیتا برای هر بسته (rock)
نصب یک بسته (rock) برای استفاده در سیستم
نصب یک rockspec محلی برای استفاده در سیستم
نصب دستی و مدیریت هدرهای Lua برای نسخه‌های مختلف Lua
بررسی خطاهای ساختاری (Lint) در پروژه جاری با استفاده از luacheck
فهرست کردن بسته‌های (rocks) نصب‌شده فعلی
اجرای lua با تنظیم متغیرهای LUA_PATH و LUA_CPATH بر روی درخت lux مشخص‌شده
ایجاد یک پروژه جدید Lua
فهرست کردن بسته‌های قدیمی
ایجاد یک بسته فشرده (packed rock) برای توزیع، با بسته‌بندی سورس‌کدها یا فایل‌های باینری
بازگرداندن مسیر بسته‌های پیکربندی‌شده فعلی
سنجاق کردن یک بسته موجود، جهت جلوگیری از هرگونه به‌روزرسانی آن بسته
حذف تمام بسته‌های نصب‌شده از یک درخت
حذف یک بسته از وابستگی‌های lux.toml در پروژه جاری
اجرای پروژه جاری با آرگومان‌های ارائه‌شده
اجرای دستوری که توسط lux نصب شده است. اگر دستور پیدا نشود، بسته‌ای هم‌نام با آن دستور نصب خواهد شد.
جستجو در سرورهای luarocks
اجرای مجموعه آزمون‌ها در دایرکتوری پروژه جاری. ابزار Lux از باطن‌های آزمون (test backends) زیر که در جدول [test] فایل lux.toml تعیین می‌شوند، پشتیبانی می‌کند:

- busted:

https://lunarmodules.github.io/busted

مثال:

[test]
type = "busted"
flags = [ ] # گزینه‌های خط فرمان اختیاری برای ارسال به busted

در صورتی که باطن آزمون تعیین نشده باشد، دستور lx test به‌طور پیش‌فرض از busted استفاده خواهد کرد اگر:

• فایل .busted در ریشه پروژه وجود داشته باشد،
• یا busted یکی از وابستگی‌های آزمون (test_dependencies) باشد.

- busted-nlua:
[در حال حاضر در ویندوز دارای ایراد است] یک باطن ساخت برای اجرای آزمون‌های busted با استفاده از نئوویما (Neovim) به عنوان مفسر Lua. برای آزمودن افزونه‌های نئوویما استفاده می‌شود.

مثال:

[test]
type = "busted-nlua"
flags = [ ] # گزینه‌های خط فرمان اختیاری برای ارسال به busted

در صورتی که باطن آزمون تعیین نشده باشد، دستور lx test به‌طور پیش‌فرض از busted-nlua استفاده خواهد کرد اگر:

• فایل .busted در ریشه پروژه وجود داشته باشد،
• یا busted و nlua جزو وابستگی‌های آزمون (test_dependencies) باشند.

- command:
نام یا مسیر فایل دستور شل که مجموعه آزمون را اجرا خواهد کرد.

مثال:

[test]
type = "command"
command = "make"
flags = [ "test" ]

- script:
مسیر نسبی به اسکریپت Lua که مجموعه آزمون را اجرا خواهد کرد.

مثال:

[test]
type = "script"
script = "tests.lua" # انتظار وجود فایل tests.lua در ریشه پروژه را دارد
flags = [ ] # آرگومان‌های اختیاری ارسالی به اسکریپت آزمون
حذف یک بسته از سیستم
برداشتن سنجاق از یک بسته موجود، که اجازه به‌روزرسانی بسته را می‌دهد
به‌روزرسانی تمامی بسته‌های یک پروژه
تولید یک rockspec برای پروژه Lux و آپلود آن به مخزن عمومی luarocks. می‌توانید یک الگوی منبع (source template) برای بسته‌های انتشار (release) و توسعه (dev) در فایل lux.toml تعیین کنید.

مثال:

[source]
url = "https://host.com/owner/$(PACKAGE)/refs/tags/$(REF).zip"
dev = "git+https://host.com/owner/$(PACKAGE).git"

می‌توانید از متغیرهای زیر در الگوی منبع استفاده کنید:

• $(PACKAGE): نام بسته.
• $(VERSION): نسخه بسته.
• $(REF): برچسب (tag) یا بازنگری git (اگر در یک مخزن git باشد).
• همچنین می‌توانید متغیرهای محیطی را با $(<VAR_NAME>) تعیین کنید.

اگر مقدار version در فایل lux.toml تنظیم نشده باشد، lux کامیت جاری را برای برچسب‌های SemVer جستجو کرده و در صورت یافتن، از آن برای تولید نسخه بسته استفاده می‌کند.

دستورات کم‌کاربرد مانند تولید فایل‌های تکمیل خودکار دستورات شل و صفحات راهنما
قرار دادن وابستگی‌های یک پروژه یا RockSpec به‌طور محلی و مستقل (Vendor کردن). هنگام ساخت یا نصب یک بسته با گزینه --vendor-dir یا گزینه پیکربندی [vendor_dir]، ابزار Lux سورس‌ها را به جای سرور راه دور، از <vendor-dir> دریافت خواهد کرد.
مشخص کردن اینکه کدام فایل با نام ماژول داده‌شده مطابقت دارد
اجرای یک شل تعاملی با متغیرهای محیطی تنظیم‌شده PATH، LUA_PATH، LUA_CPATH و LUA_INIT
همگام‌سازی درخت پروژه با lux.toml فعلی، جهت اطمینان از نصب صحیح تمامی بسته‌ها
چاپ این پیام یا راهنمای زیردستور(های) داده‌شده

v0.43.5

vhyrro <vhyrro@gmail.com>, mrcjkb <marc@jakobi.dev>

lux-cli 0.43.5