DIRENV-FETCHURL(1) User Manuals DIRENV-FETCHURL(1)

direnv fetchurl - دریافت یک URL و ذخیره روی دیسک

direnv fetchurl <url> [<integrity-hash>]

این دستور نشانی اینترنتی (URL) ارائه‌شده را بر اساس محتوای فایل دریافت‌شده، در یک مکان ثابت روی دیسک بارگیری می‌کند.

این قابلیت برای رفع وابستگی به curl یا wget و در عین حال ترویج روشی امن‌تر برای دریافت داده‌ها از اینترنت معرفی شده است. به جای curl <url> | sh از این دستور استفاده کنید.

این دستور دارای دو حالت عملکردی است:

1.
تنها نشانی اینترنتی (URL) را ارسال کنید تا هش یکپارچگی آن شناسایی شود.
2.
نشانی اینترنتی (URL) و هش یکپارچگی را با هم ارسال کنید تا مسیر ذخیره روی دیسک را دریافت کنید.

از آنجا که مکان ذخیره روی دیسک بر اساس هش است، به عنوان یک حافظه موقت (کش) نیز عمل می‌کند. یکی از نتایج این طراحی این است که نشانی‌های URL باید پایدار بوده و همیشه همان محتوا را برگردانند.

فایل‌های بارگیری‌شده به عنوان فقط‌خواندنی و قابل‌اجرا علامت‌گذاری می‌شوند تا بتوان از آن برای دریافت و اجرای فایل‌های باینری ایستا نیز استفاده کرد.

<url>
یک نشانی اینترنتی (HTTP URL) که در پاسخ به درخواست‌های HTTP GET محتوا بازمی‌گرداند. تغییرمسیرهای ۳۰۱ و سایر موارد دنبال می‌شوند.

<integrity-hash>
در صورت ارسال، یکپارچگی محتوای دریافت‌شده در برابر هش داده‌شده اعتبارسنجی می‌شود. کدگذاری هش بر اساس مشخصات SRI کنسرسیوم W3C است (نشانی https://www.w3.org/TR/SRI را ببینید).

دستور direnv fetchurl بر اساس آرگومان ارائه‌شده، خروجی‌های متفاوتی تولید می‌کند.

اگر integrity-hash ارسال شده باشد، در صورت موفقیت‌آمیز بودن دریافت، مسیر مکان ذخیره روی دیسک را چاپ می‌کند.

اگر تنها url ارسال شده باشد، مقدار هش را به همراه دستورالعمل‌هایی خوانا برای کاربر چاپ می‌کند. اگر خروجی استاندارد یک tty نباشد، تنها مقدار هش نمایش داده خواهد شد.

$ ./direnv fetchurl https://releases.nixos.org/nix/nix-2.3.7/install
Found hash: sha256-7Gxl5GzI9juc/U30Igh/pY+p6+gj5Waohfwql3jHIds=
Invoke fetchurl again with the hash as an argument to get the disk location:
  direnv fetchurl "https://releases.nixos.org/nix/nix-2.3.7/install" "sha256-7Gxl5GzI9juc/U30Igh/pY+p6+gj5Waohfwql3jHIds="
  #=> /home/zimbatm/.cache/direnv/cas/sha256-7Gxl5GzI9juc_U30Igh_pY+p6+gj5Waohfwql3jHIds=

XDG_CACHE_HOME
این متغیر برای انتخاب مکان ذخیره نشانی‌های اینترنتی دریافت‌شده روی دیسک به صورت $XDG_CACHE_HOME/direnv/cas استفاده می‌شود. اگر XDG_CACHE_HOME تنظیم نشده یا خالی باشد، مقدار پیش‌فرض آن $HOME/.cache خواهد بود.

مجوز MIT - حق نشر (C) 2019 متعلق به @zimbatm و مشارکت‌کنندگان

direnv-stdlib(1)

2019 direnv