BazelCon 2022 16-17 নভেম্বর নিউ ইয়র্ক এবং অনলাইনে আসছে।
নিবন্ধন আজ!

repository_ctx

সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
সহায়ক ফাংশন এবং গুণাবলী সম্পর্কে তথ্য ধারণকারী রিপোজিটরি নিয়মের প্রসঙ্গ। আপনি যখন একটি সংগ্রহস্থলের নিয়ম তৈরি করেন তখন আপনি implementation ফাংশনের যুক্তি হিসাবে একটি repository_ctx অবজেক্ট পাবেন।

সদস্যরা

attr

struct repository_ctx.attr

বৈশিষ্ট্যের মানগুলি অ্যাক্সেস করার জন্য একটি কাঠামো। মান ব্যবহারকারী দ্বারা প্রদান করা হয় (যদি না, একটি ডিফল্ট মান ব্যবহার করা হয়)।

মুছে ফেলা

bool repository_ctx.delete(path)

একটি ফাইল বা একটি ডিরেক্টরি মুছে দেয়। একটি bool ফেরত দেয়, যা নির্দেশ করে যে ফাইল বা ডিরেক্টরিটি আসলে এই কল দ্বারা মুছে ফেলা হয়েছে কিনা।

পরামিতি

প্যারামিটার বর্ণনা
path string ; or path ; প্রয়োজনীয়
মুছে ফেলার জন্য ফাইলের পাথ, রিপোজিটরি ডিরেক্টরির সাথে সম্পর্কিত, বা পরম। একটি পথ বা একটি স্ট্রিং হতে পারে.

ডাউনলোড

struct repository_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')

প্রদত্ত url-এর জন্য আউটপুট পাথে একটি ফাইল ডাউনলোড করে এবং success সম্বলিত একটি স্ট্রাকট প্রদান করে, একটি পতাকা যা true হয় যদি ডাউনলোড সফলভাবে সম্পন্ন হয় এবং সফল হলে, sha256 এবং integrity ক্ষেত্র সহ ফাইলটির একটি হ্যাশ।

পরামিতি

প্যারামিটার বর্ণনা
url string ; or Iterable of string s ; প্রয়োজনীয়
একই ফাইলের উল্লেখ করে মিরর URL-এর তালিকা।
output string ; or Label ; or path ; ডিফল্ট = ''
আউটপুট ফাইলের পাথ, সংগ্রহস্থল ডিরেক্টরির সাথে সম্পর্কিত।
sha256 ডিফল্ট = ''
ডাউনলোড করা ফাইলটির প্রত্যাশিত SHA-256 হ্যাশ। এটি অবশ্যই ডাউনলোড করা ফাইলের SHA-256 হ্যাশের সাথে মিলবে৷ SHA-256 বাদ দেওয়া একটি নিরাপত্তা ঝুঁকি কারণ দূরবর্তী ফাইলগুলি পরিবর্তন করতে পারে৷ সর্বোত্তমভাবে এই ক্ষেত্রটি বাদ দিলে আপনার বিল্ড অ-হারমেটিক হয়ে যাবে। এটা উন্নয়ন সহজ করতে ঐচ্ছিক কিন্তু শিপিং আগে সেট করা উচিত.
executable ডিফল্ট = মিথ্যা
তৈরি করা ফাইলে এক্সিকিউটেবল পতাকা সেট করুন, ডিফল্টরূপে মিথ্যা।
allow_fail ডিফল্ট = মিথ্যা
সেট করা থাকলে, ব্যর্থ ডাউনলোডের জন্য একটি ত্রুটি উত্থাপনের পরিবর্তে রিটার্ন মানের ত্রুটি নির্দেশ করুন
canonical_id ডিফল্ট = ''
যদি সেট করা থাকে, সেই ক্ষেত্রে ক্যাশে হিটগুলিকে সীমাবদ্ধ করুন যেখানে ফাইলটি একই ক্যানোনিকাল আইডি দিয়ে ক্যাশে যুক্ত করা হয়েছিল
auth ডিফল্ট = {}
কিছু URL-এর জন্য প্রমাণীকরণ তথ্য নির্দিষ্ট করে একটি ঐচ্ছিক ডিক্ট।
integrity ডিফল্ট = ''
ডাউনলোড করা ফাইলের প্রত্যাশিত চেকসাম, Subresource Integrity ফরম্যাটে। এটি অবশ্যই ডাউনলোড করা ফাইলের চেকসামের সাথে মেলে। চেকসাম বাদ দেওয়া একটি নিরাপত্তা ঝুঁকি কারণ দূরবর্তী ফাইলগুলি পরিবর্তন করতে পারে। সর্বোত্তমভাবে এই ক্ষেত্রটি বাদ দিলে আপনার বিল্ড অ-হারমেটিক হয়ে যাবে। এটা উন্নয়ন সহজ করতে ঐচ্ছিক কিন্তু শিপিং আগে সেট করা উচিত.

ডাউনলোড_এন্ড_এক্সট্রাক্ট

struct repository_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})

প্রদত্ত url-এর জন্য আউটপুট পাথে একটি ফাইল ডাউনলোড করে, এটিকে এক্সট্র্যাক্ট করে এবং সফল একটি স্ট্রাকট প্রদান success , একটি পতাকা যা true হয় যদি ডাউনলোড সফলভাবে সম্পন্ন হয় এবং সফল হলে, sha256 এবং integrity ক্ষেত্র সহ ফাইলটির একটি হ্যাশ।

পরামিতি

প্যারামিটার বর্ণনা
url string ; or Iterable of string s ; প্রয়োজনীয়
একই ফাইলের উল্লেখ করে মিরর URL-এর তালিকা।
output string ; or Label ; or path ; ডিফল্ট = ''
ডিরেক্টরির পাথ যেখানে সংরক্ষণাগারটি আনপ্যাক করা হবে, সংগ্রহস্থল ডিরেক্টরির সাথে সম্পর্কিত।
sha256 ডিফল্ট = ''
ডাউনলোড করা ফাইলটির প্রত্যাশিত SHA-256 হ্যাশ। এটি অবশ্যই ডাউনলোড করা ফাইলের SHA-256 হ্যাশের সাথে মিলবে৷ SHA-256 বাদ দেওয়া একটি নিরাপত্তা ঝুঁকি কারণ দূরবর্তী ফাইলগুলি পরিবর্তন করতে পারে৷ সর্বোত্তমভাবে এই ক্ষেত্রটি বাদ দিলে আপনার বিল্ড অ-হারমেটিক হয়ে যাবে। এটা উন্নয়ন সহজ করতে ঐচ্ছিক কিন্তু শিপিং আগে সেট করা উচিত. প্রদান করা হলে, রিপোজিটরি ক্যাশে প্রথমে প্রদত্ত হ্যাশ সহ একটি ফাইলের জন্য পরীক্ষা করা হবে; ফাইলটি ক্যাশে না পাওয়া গেলেই ডাউনলোড করার চেষ্টা করা হবে। একটি সফল ডাউনলোড করার পরে, ফাইলটি ক্যাশে যোগ করা হবে।
type ডিফল্ট = ''
ডাউনলোড করা ফাইলের সংরক্ষণাগার প্রকার। ডিফল্টরূপে, URL এর ফাইল এক্সটেনশন থেকে আর্কাইভের ধরন নির্ধারণ করা হয়। যদি ফাইলটির কোনো এক্সটেনশন না থাকে, তাহলে আপনি স্পষ্টভাবে "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz" উল্লেখ করতে পারেন ", ".tar.zst", ".tzst", "tar.bz2", ".ar", বা ".deb" এখানে।
stripPrefix ডিফল্ট = ''
নিষ্কাশিত ফাইল থেকে ছিন্ন করার জন্য একটি ডিরেক্টরি উপসর্গ। অনেক সংরক্ষণাগারে একটি শীর্ষ-স্তরের ডিরেক্টরি থাকে যা সংরক্ষণাগারের সমস্ত ফাইল ধারণ করে। build_file এ এই উপসর্গটি বারবার উল্লেখ করার পরিবর্তে, এই ক্ষেত্রটি এক্সট্র্যাক্ট করা ফাইল থেকে ছিনিয়ে নিতে ব্যবহার করা যেতে পারে।
allow_fail ডিফল্ট = মিথ্যা
সেট করা থাকলে, ব্যর্থ ডাউনলোডের জন্য একটি ত্রুটি উত্থাপনের পরিবর্তে রিটার্ন মানের ত্রুটি নির্দেশ করুন
canonical_id ডিফল্ট = ''
যদি সেট করা থাকে, সেই ক্ষেত্রে ক্যাশে হিটগুলিকে সীমাবদ্ধ করুন যেখানে ফাইলটি একই ক্যানোনিকাল আইডি দিয়ে ক্যাশে যুক্ত করা হয়েছিল
auth ডিফল্ট = {}
কিছু URL-এর জন্য প্রমাণীকরণ তথ্য নির্দিষ্ট করে একটি ঐচ্ছিক ডিক্ট।
integrity ডিফল্ট = ''
ডাউনলোড করা ফাইলের প্রত্যাশিত চেকসাম, Subresource Integrity ফরম্যাটে। এটি অবশ্যই ডাউনলোড করা ফাইলের চেকসামের সাথে মেলে। চেকসাম বাদ দেওয়া একটি নিরাপত্তা ঝুঁকি কারণ দূরবর্তী ফাইলগুলি পরিবর্তন করতে পারে। সর্বোত্তমভাবে এই ক্ষেত্রটি বাদ দিলে আপনার বিল্ড অ-হারমেটিক হয়ে যাবে। এটা উন্নয়ন সহজ করতে ঐচ্ছিক কিন্তু শিপিং আগে সেট করা উচিত.
rename_files ডিফল্ট = {}
নিষ্কাশনের সময় পুনঃনামকরণ করার জন্য ফাইলগুলি নির্দিষ্ট করে একটি ঐচ্ছিক ডিক্ট৷ যেকোন ডিরেক্টরি উপসর্গ সামঞ্জস্যের পূর্বে, একটি কী-এর সাথে হুবহু মিলে যাওয়া নামের সাথে আর্কাইভ এন্ট্রির নাম পরিবর্তন করা হবে। এটি নন-ইউনিকোড ফাইলের নাম ধারণ করে সংরক্ষণাগারগুলি বের করতে ব্যবহার করা যেতে পারে, অথবা যে ফাইলগুলি কেস-অসংবেদনশীল ফাইল সিস্টেমে একই পথে বের করতে পারে।

এক্সিকিউট

exec_result repository_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

আর্গুমেন্টের তালিকা দ্বারা প্রদত্ত কমান্ড কার্যকর করে। কমান্ড কার্যকর করার সময় timeout দ্বারা সীমিত (সেকেন্ডে, ডিফল্ট 600 সেকেন্ড)। এই পদ্ধতিটি কমান্ডের আউটপুট ধারণকারী exec_result গঠন প্রদান করে। environment ম্যাপ প্রক্রিয়ায় পাস করার জন্য কিছু পরিবেশ ভেরিয়েবল ওভাররাইড করতে ব্যবহার করা যেতে পারে।

পরামিতি

প্যারামিটার বর্ণনা
arguments প্রয়োজনীয়
আর্গুমেন্টের তালিকা, প্রথম উপাদানটি কার্যকর করার জন্য প্রোগ্রামের পথ হওয়া উচিত।
timeout ডিফল্ট = 600
সেকেন্ডে কমান্ডের সর্বোচ্চ সময়কাল (ডিফল্ট হল 600 সেকেন্ড)।
environment ডিফল্ট = {}
কিছু এনভায়রনমেন্ট ভেরিয়েবলকে প্রক্রিয়ায় পাস করার জন্য সেট করতে বাধ্য করুন।
quiet ডিফল্ট = সত্য
যদি stdout এবং stderr টার্মিনালে প্রিন্ট করা উচিত।
working_directory ডিফল্ট = ""
কমান্ড এক্সিকিউশনের জন্য ওয়ার্কিং ডিরেক্টরি। রিপোজিটরি রুট বা পরম আপেক্ষিক হতে পারে।

নির্যাস

None repository_ctx.extract(archive, output='', stripPrefix='', *, rename_files={})

সংগ্রহস্থল ডিরেক্টরিতে একটি সংরক্ষণাগার বের করুন।

পরামিতি

প্যারামিটার বর্ণনা
archive string ; or Label ; or path ; প্রয়োজনীয়
সংরক্ষণাগারের পথ যা আনপ্যাক করা হবে, সংগ্রহস্থল ডিরেক্টরির সাথে সম্পর্কিত।
output string ; or Label ; or path ; ডিফল্ট = ''
ডিরেক্টরির পাথ যেখানে সংরক্ষণাগারটি আনপ্যাক করা হবে, সংগ্রহস্থল ডিরেক্টরির সাথে সম্পর্কিত।
stripPrefix ডিফল্ট = ''
নিষ্কাশিত ফাইল থেকে ছিন্ন করার জন্য একটি ডিরেক্টরি উপসর্গ। অনেক সংরক্ষণাগারে একটি শীর্ষ-স্তরের ডিরেক্টরি থাকে যা সংরক্ষণাগারের সমস্ত ফাইল ধারণ করে। build_file এ এই উপসর্গটি বারবার উল্লেখ করার পরিবর্তে, এই ক্ষেত্রটি এক্সট্র্যাক্ট করা ফাইল থেকে ছিনিয়ে নিতে ব্যবহার করা যেতে পারে।
rename_files ডিফল্ট = {}
নিষ্কাশনের সময় পুনঃনামকরণ করার জন্য ফাইলগুলি নির্দিষ্ট করে একটি ঐচ্ছিক ডিক্ট৷ যেকোন ডিরেক্টরি উপসর্গ সামঞ্জস্যের পূর্বে, একটি কী-এর সাথে হুবহু মিলে যাওয়া নামের সাথে আর্কাইভ এন্ট্রির নাম পরিবর্তন করা হবে। এটি নন-ইউনিকোড ফাইলের নাম ধারণ করে সংরক্ষণাগারগুলি বের করতে ব্যবহার করা যেতে পারে, অথবা যে ফাইলগুলি কেস-অসংবেদনশীল ফাইল সিস্টেমে একই পথে বের করতে পারে।

ফাইল

None repository_ctx.file(path, content='', executable=True, legacy_utf8=True)

প্রদত্ত সামগ্রী সহ সংগ্রহস্থল ডিরেক্টরিতে একটি ফাইল তৈরি করে।

পরামিতি

প্যারামিটার বর্ণনা
path string ; or Label ; or path ; প্রয়োজনীয়
রিপোজিটরি ডিরেক্টরির সাপেক্ষে তৈরি করা ফাইলের পাথ।
content ডিফল্ট = ''
তৈরি করা ফাইলের বিষয়বস্তু, ডিফল্টরূপে খালি।
executable ডিফল্ট = সত্য
তৈরি করা ফাইলে এক্সিকিউটেবল পতাকা সেট করুন, ডিফল্টরূপে সত্য।
legacy_utf8 ডিফল্ট = সত্য
UTF-8 ফাইলের বিষয়বস্তু এনকোড করুন, ডিফল্টরূপে সত্য। ভবিষ্যতের সংস্করণগুলি ডিফল্ট পরিবর্তন করবে এবং এই প্যারামিটারটি সরিয়ে দেবে।

নাম

string repository_ctx.name

এই নিয়ম দ্বারা তৈরি বাহ্যিক ভান্ডারের নাম।

os

repository_os repository_ctx.os

সিস্টেম থেকে তথ্য অ্যাক্সেস করার জন্য একটি কাঠামো।

প্যাচ

None repository_ctx.patch(patch_file, strip=0)

বহিরাগত সংগ্রহস্থলের রুট ডিরেক্টরিতে একটি প্যাচ ফাইল প্রয়োগ করুন। প্যাচ ফাইলটি একটি স্ট্যান্ডার্ড ইউনিফাইড ডিফ ফরম্যাট ফাইল হওয়া উচিত। ব্যাজেল-নেটিভ প্যাচ বাস্তবায়ন প্যাচ কমান্ড লাইন টুলের মত ফাজ ম্যাচ এবং বাইনারি প্যাচ সমর্থন করে না।

পরামিতি

প্যারামিটার বর্ণনা
patch_file string ; or Label ; or path ; প্রয়োজনীয়
প্যাচ ফাইলটি প্রয়োগ করতে হবে, এটি লেবেল, আপেক্ষিক পথ বা পরম পথ হতে পারে। এটি একটি আপেক্ষিক পাথ হলে, এটি সংগ্রহস্থল ডিরেক্টরিতে সমাধান করবে।
strip ডিফল্ট = 0
ফাইলের নাম থেকে নেতৃস্থানীয় উপাদানের নির্দিষ্ট সংখ্যক ছিনতাই করুন।

পথ

path repository_ctx.path(path)

একটি স্ট্রিং, লেবেল বা পাথ থেকে একটি পাথ ফেরত দেয়। যদি পাথ আপেক্ষিক হয়, তাহলে এটি রিপোজিটরি ডিরেক্টরির সাথে সম্পর্কিত সমাধান করবে। যদি পাথটি একটি লেবেল হয় তবে এটি সংশ্লিষ্ট ফাইলের পাথে সমাধান করবে। মনে রাখবেন যে দূরবর্তী সংগ্রহস্থলগুলি বিশ্লেষণের পর্যায়ে কার্যকর করা হয় এবং এইভাবে লক্ষ্য ফলাফলের উপর নির্ভর করতে পারে না (লেবেলটি একটি অ-উত্পন্ন ফাইলের দিকে নির্দেশ করা উচিত)। যদি পথটি একটি পথ হয় তবে এটি সেই পথটিকে আগের মতোই ফিরিয়ে দেবে।

পরামিতি

প্যারামিটার বর্ণনা
path string ; or Label ; or path ; প্রয়োজনীয়
স্ট্রিং, লেবেল বা পাথ যেখান থেকে পাথ তৈরি করতে হবে

পড়া

string repository_ctx.read(path)

ফাইল সিস্টেমে একটি ফাইলের বিষয়বস্তু পড়ে।

পরামিতি

প্যারামিটার বর্ণনা
path string ; or Label ; or path ; প্রয়োজনীয়
ফাইলের পাথ থেকে পড়তে হবে।

রিপোর্ট_প্রগতি

None repository_ctx.report_progress(status)

এই সংগ্রহস্থলের আনার জন্য অগ্রগতি স্থিতি আপডেট করে

পরামিতি

প্যারামিটার বর্ণনা
status string ; প্রয়োজনীয়
আনার অগ্রগতির বর্তমান অবস্থা বর্ণনা করে স্ট্রিং

None repository_ctx.symlink(from, to)

ফাইল সিস্টেমে একটি সিমলিঙ্ক তৈরি করে।

পরামিতি

প্যারামিটার বর্ণনা
from string ; or Label ; or path ; প্রয়োজনীয়
যে পথে তৈরি সিমলিংক নির্দেশ করবে।
to string ; or Label ; or path ; প্রয়োজনীয়
রিপোজিটরি ডিরেক্টরির সাপেক্ষে তৈরি করার জন্য সিমলিংকের পাথ।

টেমপ্লেট

None repository_ctx.template(path, template, substitutions={}, executable=True)

একটি template ব্যবহার করে একটি নতুন ফাইল তৈরি করে। প্রতিস্থাপনের কী-এর template প্রতিটি ঘটনা সংশ্লিষ্ট মান দ্বারা substitutions হবে। ফলাফলটি path লেখা আছে। একটি ঐচ্ছিক executable আর্গুমেন্ট (ডিফল্ট থেকে সত্য) এক্সিকিউটেবল বিট চালু বা বন্ধ করতে সেট করা যেতে পারে।

পরামিতি

প্যারামিটার বর্ণনা
path string ; or Label ; or path ; প্রয়োজনীয়
রিপোজিটরি ডিরেক্টরির সাপেক্ষে তৈরি করা ফাইলের পাথ।
template string ; or Label ; or path ; প্রয়োজনীয়
টেমপ্লেট ফাইলের পথ।
substitutions ডিফল্ট = {}
টেমপ্লেট প্রসারিত করার সময় প্রতিস্থাপন করতে হবে।
executable ডিফল্ট = সত্য
তৈরি করা ফাইলে এক্সিকিউটেবল পতাকা সেট করুন, ডিফল্টরূপে সত্য।

যা

path repository_ctx.which(program)

সংশ্লিষ্ট প্রোগ্রামের পাথ রিটার্ন করে অথবা যদি পাথে এরকম কোন প্রোগ্রাম না থাকে তাহলে None।

পরামিতি

প্যারামিটার বর্ণনা
program প্রয়োজনীয়
পথ খুঁজে প্রোগ্রাম.
None ফেরত দিতে পারে না।

workspace_root

path repository_ctx.workspace_root

বেজেল আহ্বানের মূল কর্মক্ষেত্রের পথ।