Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

अपने गन्दा ओपन सोर्स रिपॉजिटरी के प्रबंधन के लिए कमांड लाइन ट्रिक्स

प्रभावी सहयोग, विशेष रूप से ओपन सोर्स सॉफ्टवेयर विकास में, प्रभावी संगठन के साथ शुरू होता है। यह सुनिश्चित करने के लिए कि कुछ भी छूट न जाए, सामान्य नियम, "एक मुद्दा, एक पुल अनुरोध" अंगूठे का एक अच्छा नियम है।

"दस्तावेज़ीकरण में सभी टूटे हुए लिंक को ठीक करें" जैसे बड़े दायरे के साथ एक मुद्दे को खोलने के बजाय, ओपन सोर्स प्रोजेक्ट्स में कई छोटे और अधिक प्रबंधनीय मुद्दों के साथ योगदानकर्ताओं को आकर्षित करने के लिए अधिक भाग्य होगा।

पिछले उदाहरण में, आप खंड या पृष्ठ के अनुसार टूटे हुए लिंक का दायरा बढ़ा सकते हैं। यह अधिक योगदानकर्ताओं को एक बड़े और अधिक थकाऊ योगदान के प्रयास में एक व्यक्ति की प्रतीक्षा करने के बजाय अपने समय की छोटी खिड़कियों में कूदने और समर्पित करने की अनुमति देता है।

छोटे दायरे वाले मुद्दे भी परियोजना अनुरक्षकों को यह देखने में मदद करते हैं कि काम कहाँ पूरा किया गया है और कहाँ नहीं। इससे इस बात की संभावना कम हो जाती है कि समस्या का कुछ हिस्सा छूट गया है, मान लिया गया है कि पूरा हो गया है, और बाद में बग या सुरक्षा कमजोरियों की ओर जाता है।

यह सब अच्छा और अच्छा है। लेकिन क्या होगा यदि आप पहले से ही कई बड़े पैमाने पर मुद्दों को खोल चुके हैं, कुछ पीआर पहले ही सबमिट या मर्ज किए जा चुके हैं, और आपको वर्तमान में पता नहीं है कि काम कहां से शुरू हुआ या कहां रुक गया?

आपकी परियोजना की स्थिति को वापस नियंत्रण में लाने में थोड़ा समय लगेगा। शुक्र है, एक गन्दा भंडार को स्कैन करने, क्रमबद्ध करने और समझने में आपकी सहायता के लिए कई कमांड लाइन टूल हैं। यहां उन लोगों का एक छोटा चयन है जिनका मैं उपयोग करता हूं।

इंटरएक्टिव खोज और vim के साथ बदलें

आप विम में एक फ़ाइल खोल सकते हैं, फिर अंतःक्रियात्मक रूप से खोज सकते हैं और इसके साथ प्रतिस्थापित कर सकते हैं:

:%s/\<word\>/newword/gc

% वर्तमान फ़ाइल की सभी पंक्तियों को देखने के लिए इंगित करता है, s विकल्प के लिए है, \<word\> पूरे शब्द से मेल खाता है, और g "वैश्विक" के लिए हर घटना के लिए है। c अंत में आपको प्रत्येक परिवर्तन के किए जाने से पहले उसे देखने और उसकी पुष्टि करने देगा। आप इसे c . के बिना स्वचालित रूप से और बहुत तेज़ी से चला सकते हैं , लेकिन यदि आपने पैटर्न-मिलान त्रुटि की है तो आप स्वयं को जटिल बनाने के जोखिम में डालते हैं।

मार्कडाउन-लिंक-चेक नोड मॉड्यूल में एक अच्छा सीएलआई दोस्त है।

मैं इसका उपयोग इतनी बार करता हूं कि मैंने इसे बैश उपनाम फ़ंक्शन में बदल दिया। ऐसा करने के लिए, इसे अपने .bashrc . में जोड़ें :

# Markdown link check in a folder, recursive
function mlc () {
    find $1 -name \*.md -exec markdown-link-check -p {} \;
}

फिर mlc <filename> . के साथ रन करें ।

उपनिर्देशिका को git रिपॉजिटरी के साथ या उसके बिना सूचीबद्ध करें find

सभी उपनिर्देशिकाओं को प्रिंट करें जो git रिपॉजिटरी हैं, या दूसरे शब्दों में, एक .git है उनमें:

find . -maxdepth 1 -type d -exec test -e '{}/.git' ';' -printf "is git repo: %p\n"

उन सभी उपनिर्देशिकाओं को प्रिंट करने के लिए जो git रिपॉजिटरी नहीं हैं, परीक्षण को ! से नकारें :

find . -maxdepth 1 -type d -exec test '!' -e '{}/.git' ';' -printf "not git repo: %p\n"

एक से अधिक git रिपॉजिटरी को xargs वाली सूची से खींचें

मैंने शुरुआत में इसे बैश स्क्रिप्ट के साथ अपने लैपटॉप को स्वचालित रूप से फिर से बनाने के हिस्से के रूप में उपयोग किया था, लेकिन जब आप क्लाउड इंस्टेंस या डॉकरफाइल के साथ काम कर रहे हों तो यह बहुत आसान है।

फ़ाइल को देखते हुए, repos.txt प्रत्येक पंक्ति पर एक भंडार के एसएसएच लिंक के साथ (और आपकी एसएसएच कुंजी सेट अप), चलाएं:

xargs -n1 git clone < repos.txt

यदि आप कई रिपॉजिटरी को खींचना और धक्का देना चाहते हैं, तो मैंने पहले लिखा था कि अपने रिपॉजिटरी को प्रबंधित करने के लिए बैश वन-लाइनर का उपयोग कैसे करें।

समस्याओं को jot के साथ नंबर के आधार पर सूचीबद्ध करें

मैं OWASP वेब सुरक्षा परीक्षण गाइड रिपॉजिटरी के लिए एक सह-लेखक और अनुरक्षक हूं, जहां मैंने हाल ही में एक बड़ा मुद्दा उठाया था (हाँ, यह "दस्तावेज़ीकरण में सभी टूटे हुए लिंक को ठीक करें" - आपने कैसे अनुमान लगाया?) और इसे तोड़ दिया। कई छोटे, अधिक प्रबंधनीय मुद्दों में। एक पूरे सैंतीस छोटे, अधिक प्रबंधनीय मुद्दे।

मैं उन सभी मुद्दों की गणना करना चाहता था जो मूल बन गए थे, लेकिन सैंतीस अंक संख्या (#275 से #312) टाइप करने का विचार बहुत थकाऊ और समय लेने वाला लग रहा था। इसलिए, प्राकृतिक प्रोग्रामर फैशन में, मैंने उन सभी नंबरों को टाइप करने के लिए उतना ही समय बिताया और इसके बजाय इसे स्वचालित करने का एक तरीका तैयार किया।

jot उपयोगिता (apt install athena-jot ) एक छोटा टूल है जो कुछ नंबरों का प्रिंट आउट लेने में बहुत मददगार होता है। बस यह बताएं कि आप कितने चाहते हैं, और कहां से शुरू करें और कहां रुकें।

# jot [ reps [ begin [ end ] ] ]
jot 37 275 312

यह प्रत्येक नंबर को, 275 से 312 तक, एक नई लाइन पर प्रिंट करता है। इन्हें इश्यू नंबर नोटेशन में बनाने के लिए कि GitHub और कई अन्य प्लेटफ़ॉर्म स्वचालित रूप से पहचानते हैं और लिंक में बदल जाते हैं, आप आउटपुट को awk पर पाइप कर सकते हैं ।

jot 37 275 312 | awk '{printf "#"$0", "}'

#275, #276, #277, #278, #279, #280, #281, #282, #283, #284, #285, #286, #287, #288, #289, #290, #291, #292, #293, #295, #296, #297, #298, #299, #300, #301, #302, #303, #304, #305, #306, #307, #308, #309, #310, #311, #312

आप jot . का भी उपयोग कर सकते हैं मुख्य रूप से विकास या परीक्षण उद्देश्यों के लिए यादृच्छिक या अनावश्यक डेटा उत्पन्न करने के लिए।

सीएलआई-पावर्ड ओपन सोर्स ऑर्गनाइजेशन

एक सुव्यवस्थित ओपन सोर्स रिपोजिटरी एक सुव्यवस्थित ओपन सोर्स प्रोजेक्ट है। आसान संदर्भ के लिए इस पोस्ट को सहेजें, और अच्छे के लिए अपनी नई सीएलआई महाशक्तियों का उपयोग करें! ?


  1. 9 ट्रिक्स गेमिंग के लिए अपने मैक को ऑप्टिमाइज़ करने के लिए

    इस लेख में, हमने अलग-अलग तरकीबें बताई हैं जो गेमिंग के लिए आपके मैक के प्रदर्शन को अनुकूलित करने में मदद कर सकती हैं। जबकि मैक मजबूत मशीनों में से एक है और गेमर्स आमतौर पर इसे गेमिंग उद्देश्यों के लिए पसंद करते हैं, ऐसे समय होते हैं जब आपका मैक स्क्रीन पर डिस्प्ले ग्राफिक्स और विजुअल इफेक्ट्स को सं

  1. 14 विंडोज 10 कमांड लाइन ट्रिक्स जो आपको अपने पीसी पर अधिक नियंत्रण देती हैं

    विंडोज 10 में एक अविश्वसनीय ग्राफिक्स यूजर इंटरफेस (जीयूआई) है जो अक्सर आपके लिए काम करने के लिए पर्याप्त होगा। लेकिन अगर आपका इनर ओलिवर ट्विस्ट और अधिक चाहता है, तो आपको कमांड लाइन के बारे में सीखना शुरू कर देना चाहिए। कमांड प्रॉम्प्ट के साथ, आपको उन सुविधाओं तक पहुंच प्राप्त होती है जो जीयूआई मे

  1. Android के लिए 5 सर्वश्रेष्ठ ओपन सोर्स गेम्स

    हम सभी अपने बचपन के दिनों में अपने खुद के साम्राज्य और राज्य बनाना चाहते थे। यह इच्छा बाद के वर्षों में क्लासिक खेलों और उनके स्पिन ऑफ़ द्वारा पूरी की गई। फंतासी और रणनीति वीडियो गेम के समामेलन ने सचमुच हमारी बचपन की कल्पनाओं को डिजिटल दुनिया में ला दिया है। आज, इस लेख में हम उन शीर्ष 5 खेलों की स