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

শেল নিয়ম

সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।

নিয়ম

sh_binary

sh_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_properties, features, licenses, output_licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

sh_binary নিয়মটি এক্সিকিউটেবল শেল স্ক্রিপ্ট ঘোষণা করতে ব্যবহৃত হয়। ( sh_binary একটি ভুল নাম: এর আউটপুটগুলি অগত্যা বাইনারি নয়।) এই নিয়মটি নিশ্চিত করে যে সমস্ত নির্ভরতা তৈরি করা হয়েছে এবং কার্যকর করার সময় runfiles এলাকায় উপস্থিত হয়। আমরা সুপারিশ করছি যে আপনি আপনার sh_binary() নিয়মের নাম স্ক্রিপ্টের নামের পরে এক্সটেনশন বিয়োগ করুন (যেমন .sh ); নিয়মের নাম এবং ফাইলের নাম অবশ্যই আলাদা হতে হবে। sh_binary সম্মান করে, তাই যেকোনো উপলব্ধ দোভাষী ব্যবহার করা যেতে পারে (যেমন #!/bin/zsh )

উদাহরণ

কোনও নির্ভরতা এবং কিছু ডেটা ফাইল ছাড়াই একটি সাধারণ শেল স্ক্রিপ্টের জন্য:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

যুক্তি

গুণাবলী
name

Name ; required

এই লক্ষ্যের জন্য একটি অনন্য নাম।

deps

List of labels ; optional

"লাইব্রেরি" লক্ষ্যগুলির তালিকা এই লক্ষ্যে একত্রিত করা হবে। বেশিরভাগ বিল্ড নিয়ম দ্বারা সংজ্ঞায়িত সাধারণ বৈশিষ্ট্যগুলিতে deps সম্পর্কে সাধারণ মন্তব্যগুলি দেখুন।

এই বৈশিষ্ট্যটি অন্যান্য sh_library নিয়মগুলি তালিকাভুক্ত করতে ব্যবহার করা উচিত যা srcs এ কোডের উপর নির্ভর করে ব্যাখ্যা করা প্রোগ্রাম উত্স কোড প্রদান করে। এই নিয়ম দ্বারা প্রদত্ত ফাইলগুলি এই লক্ষ্যের runfiles মধ্যে উপস্থিত থাকবে।

srcs

List of labels ; required

শেল স্ক্রিপ্ট ধারণকারী ফাইল.

এই অ্যাট্রিবিউটটি অবশ্যই একটি সিঙ্গেলটন তালিকা হতে হবে, যার উপাদান হল শেল স্ক্রিপ্ট। এই স্ক্রিপ্টটি অবশ্যই এক্সিকিউটেবল হতে হবে এবং এটি একটি সোর্স ফাইল বা জেনারেট করা ফাইল হতে পারে। রানটাইমে প্রয়োজনীয় অন্যান্য সমস্ত ফাইল (কি স্ক্রিপ্ট বা ডেটা) data অ্যাট্রিবিউটের অন্তর্গত।

sh_লাইব্রেরি

sh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)

এই নিয়মের প্রধান ব্যবহার হল একটি লজিক্যাল "লাইব্রেরি" সমন্বিত করা যাতে সম্পর্কিত স্ক্রিপ্টগুলি থাকে—একটি ব্যাখ্যা করা ভাষায় প্রোগ্রাম যা সংকলন বা লিঙ্ক করার প্রয়োজন হয় না, যেমন বোর্ন শেল—এবং সেই প্রোগ্রামগুলির রান-টাইমে যে কোনো ডেটা প্রয়োজন। এই ধরনের "লাইব্রেরি" তখন এক বা একাধিক sh_binary নিয়মের data অ্যাট্রিবিউট থেকে ব্যবহার করা যেতে পারে।

আপনি ডেটা ফাইল একত্রিত করতে filegroup নিয়ম ব্যবহার করতে পারেন।

ব্যাখ্যা করা প্রোগ্রামিং ভাষাতে, "কোড" এবং "ডেটা" এর মধ্যে সর্বদা একটি স্পষ্ট পার্থক্য থাকে না: সর্বোপরি, দোভাষীর দৃষ্টিকোণ থেকে প্রোগ্রামটি কেবল "ডেটা"। এই কারণে এই নিয়মের তিনটি বৈশিষ্ট্য রয়েছে যা মূলত সমতুল্য: srcs , deps এবং data । বর্তমান বাস্তবায়ন এই তালিকার উপাদানগুলির মধ্যে পার্থক্য করে না। তিনটি বৈশিষ্ট্যই নিয়ম, উৎস ফাইল এবং জেনারেট করা ফাইল গ্রহণ করে। তবে বৈশিষ্ট্যগুলিকে তাদের স্বাভাবিক উদ্দেশ্যে ব্যবহার করা ভাল অনুশীলন (অন্যান্য নিয়মগুলির মতো)।

উদাহরণ

sh_library(
    name = "foo",
    data = [
        ":foo_service_script",  # an sh_binary with srcs
        ":deploy_foo",  # another sh_binary with srcs
    ],
)

যুক্তি

গুণাবলী
name

Name ; required

এই লক্ষ্যের জন্য একটি অনন্য নাম।

deps

List of labels ; optional

"লাইব্রেরি" লক্ষ্যগুলির তালিকা এই লক্ষ্যে একত্রিত করা হবে। বেশিরভাগ বিল্ড নিয়ম দ্বারা সংজ্ঞায়িত সাধারণ বৈশিষ্ট্যগুলিতে deps সম্পর্কে সাধারণ মন্তব্যগুলি দেখুন।

এই বৈশিষ্ট্যটি অন্যান্য sh_library নিয়মগুলি তালিকাভুক্ত করতে ব্যবহার করা উচিত যা srcs এ কোডের উপর নির্ভর করে ব্যাখ্যা করা প্রোগ্রাম উত্স কোড প্রদান করে। এই নিয়ম দ্বারা প্রদত্ত ফাইলগুলি এই লক্ষ্যের runfiles মধ্যে উপস্থিত থাকবে।

srcs

List of labels ; optional

ইনপুট ফাইলের তালিকা।

এই লাইব্রেরির অন্তর্গত শেল স্ক্রিপ্ট সোর্স ফাইলগুলি তালিকাভুক্ত করতে এই বৈশিষ্ট্যটি ব্যবহার করা উচিত। স্ক্রিপ্টগুলি শেলের source বা ব্যবহার করে অন্যান্য স্ক্রিপ্টগুলি লোড করতে পারে . আদেশ

sh_test

sh_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, licenses, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)

একটি sh_test() নিয়ম একটি বোর্ন শেল স্ক্রিপ্ট হিসাবে লিখিত একটি পরীক্ষা তৈরি করে।

সমস্ত পরীক্ষার নিয়মে সাধারণ বৈশিষ্ট্যগুলি দেখুন (*_test)

উদাহরণ

sh_test(
    name = "foo_integration_test",
    size = "small",
    srcs = ["foo_integration_test.sh"],
    deps = [":foo_sh_lib"],
    data = glob(["testdata/*.txt"]),
)

যুক্তি

গুণাবলী
name

Name ; required

এই লক্ষ্যের জন্য একটি অনন্য নাম।

deps

List of labels ; optional

"লাইব্রেরি" লক্ষ্যগুলির তালিকা এই লক্ষ্যে একত্রিত করা হবে। বেশিরভাগ বিল্ড নিয়ম দ্বারা সংজ্ঞায়িত সাধারণ বৈশিষ্ট্যগুলিতে deps সম্পর্কে সাধারণ মন্তব্যগুলি দেখুন।

এই বৈশিষ্ট্যটি অন্যান্য sh_library নিয়মগুলি তালিকাভুক্ত করতে ব্যবহার করা উচিত যা srcs এ কোডের উপর নির্ভর করে ব্যাখ্যা করা প্রোগ্রাম উত্স কোড প্রদান করে। এই নিয়ম দ্বারা প্রদত্ত ফাইলগুলি এই লক্ষ্যের runfiles মধ্যে উপস্থিত থাকবে।

srcs

List of labels ; required

শেল স্ক্রিপ্ট ধারণকারী ফাইল.

এই অ্যাট্রিবিউটটি অবশ্যই একটি সিঙ্গেলটন তালিকা হতে হবে, যার উপাদান হল শেল স্ক্রিপ্ট। এই স্ক্রিপ্টটি অবশ্যই এক্সিকিউটেবল হতে হবে এবং এটি একটি সোর্স ফাইল বা জেনারেট করা ফাইল হতে পারে। রানটাইমে প্রয়োজনীয় অন্যান্য সমস্ত ফাইল (কি স্ক্রিপ্ট বা ডেটা) data অ্যাট্রিবিউটের অন্তর্গত।