در طول توسعه، اغلب مجبور به تکرار یک چرخه یکسان هستیم: کد را تغییر میدهیم، ذخیره میکنیم، اسکریپت را دوباره راهاندازی میکنیم، دوباره تغییر میدهیم و دوباره راهاندازی میکنیم. در لینوکس، میتوان این فرآیند را با یک ابزار کوچک، یعنی
`entr`، خودکار کرد.tr
en
فایلها را زیر نظر میگیرد و هر بار که یکی از آنها تغییر میکند، دستور مشخصشده را اجرا میکند.
➡️ به عنوان مثال، میتوان یک اسکریپت پایتون را به طور خودکار پس از ذخیره، اجرا کرد:
echo main.py | entr python3 main.py
اگر فای
لpy
main.
را تغییر دهیم
،tr
en
این رویداد را تشخیص میدهد و اسکریپت را دوباره اجرا میکند.
➡️ میتوان کل پروژه را زیر نظر گرفت:
find . -name "*.py" | entr python3 main.py
اکنون، تغییر هر فای
لpy
.
باعث راهاندازی مجدد اسکریپت میشود.
💬اگر نیاز به راهاندازی مجدد یک فرآیند در حال اجرا باشد، چه؟
برای این کار، از گزین
ه-r
استفاده میشود:
find . -name "*.py" | entr -r python3 main.py
هنگامی که فایلی تغییر میکند
،tr
en
فرآیند قبلی را خاتمه میدهد و آن را دوباره اجرا میکند.
➡️ این ابزار فقط با پایتون کار نمیکند. به عنوان مثال، میتوان تستها را به طور خودکار اجرا کرد:
find . -name "*.py" | entr pytest
یا پروژه را دوباره کامپایل کرد:
find src/ -type f | entr make
یا به تغییرات پیکربندی واکنش نشان داد:
echo nginx.conf | entr nginx -t
📦نصب
sudo apt install entr
`entr` از فلسفه کلاسیک یونیکس پیروی میکند: لیستی از فایلها را از طریق stdin دریافت میکند، آنها را زیر نظر میگیرد و دقیقاً یک کار انجام میدهد: دستور را زمانی که چیزی تغییر میکند، اجرا میکند.اگر مفید بود، ذخیره کنید و لایک بزنید — 👍
@Netwo0rk
