WPEXEC(1) WirePlumber WPEXEC(1)

wpexec - مفسر اسکریپت WirePlumber

wpexec SCRIPT [ARGUMENTS]

دستور wpexec مفسر اسکریپت WirePlumber است. این دستور یک اسکریپت منفرد Lua را در برابر یک دیمن در حال اجرای PipeWire، بدون راه‌اندازی یک مدیر نشست کامل، اجرا می‌کند.

این ویژگی آن را به ابزاری ایده‌آل برای توسعه و آزمایش اسکریپت‌ها، پرس‌وجوهای یک‌باره و اسکریپت‌های خط‌مشی مستقل و کوچک که در کنار نمونه اصلی WirePlumber اجرا می‌شوند، تبدیل می‌کند.

هنگام فراخوانی، wpexec به PipeWire متصل می‌شود، افزونه‌های مورد نیاز اسکریپت را از طریق Core.require_api() <#Core.require_api> فعال می‌کند و سپس اسکریپت را اجرا می‌نماید. این ابزار تا زمانی به اجرا ادامه می‌دهد که اسکریپت دستور Core.quit() <#Core.quit> را فراخوانی کند، اتصال به PipeWire قطع شود، یا با سیگنال‌های SIGINT، SIGTERM یا SIGHUP متوقف گردد.

اسکریپت‌هایی که تحت wpexec اجرا می‌شوند، به همان Lua API <#scripting-lua-api> دسترسی دارند که اسکریپت‌های بارگذاری‌شده توسط دیمن دارند؛ به استثنای چند تابع که فقط در داخل دیمن کاربرد دارند.

مسیر اسکریپت Lua برای اجرا.
یک object اختیاری از نوع SPA-JSON که به‌عنوان آرگومان (...) به اسکریپت ارسال می‌شود. ارسال هر چیزی غیر از یک شیء JSON یک خطا محسوب می‌شود.

اجرای یک اسکریپت:

$ wpexec ./get-default-sink-volume.lua

اجرای یک اسکریپت با آرگومان‌ها:

$ wpexec ./interactive.lua '{ option1 = "value1", option2 = "value2" }'

اجرای یک اسکریپت از درخت ساخت (build tree)، بدون نیاز به نصب:

$ ./wp-uninstalled.sh wpexec tests/examples/interactive.lua

یک اسکریپت همچنین می‌تواند با درج خط شه‌بنگ (shebang) مناسب مستقیماً قابل اجرا شود، همان‌طور که در مثال‌های tests/examples انجام شده است:

#!/usr/bin/wpexec

دستور wpexec از همان متغیرهای محیطی wireplumber(1) پیروی می‌کند، که کاربردی‌ترین آن‌ها WIREPLUMBER_DEBUG است؛ به بخش ثبت گزارش اشکال‌زدایی (Debug Logging) <#daemon-logging> مراجعه کنید.

کدهای خروج از قراردادهای sysexits.h(3head) پیروی می‌کنند:

0 (EX_OK)
موفقیت.
64 (EX_USAGE)
خطای نحوه استفاده در خط فرمان، شامل شیء ناصحیح ARGUMENTS.
69 (EX_UNAVAILABLE)
عدم امکان اتصال به PipeWire.
70 (EX_SOFTWARE)
خطای نرم‌افزاری داخلی، شامل خطای ایجاد شده توسط اسکریپت.

wireplumber(1), wpctl(1), pipewire(1), sysexits.h(3head)

مستندات WirePlumber: https://pipewire.pages.freedesktop.org/wireplumber

توسعه‌دهندگان WirePlumber

2020-2025، Collabora و مشارکت‌کنندگان

September 3, 2026 0.5.17