
Athena OS एक Arch/Nix-आधारित डिस्ट्रो है जो साइबर सुरक्षा पर केंद्रित है। किसी भी हैकिंग टूल के साथ सीखें, अभ्यास करें और आनंद लें!

इस रिपॉजिटरी में पैकेजों को nvchecker द्वारा संचालित एक दैनिक GitHub Actions वर्कफ़्लो के माध्यम से स्वचालित रूप से अद्यतित रखा जाता है।
ऑटोमेशन प्रतिदिन चलता है (और मैन्युअल रूप से भी ट्रिगर किया जा सकता है) और निम्नलिखित चरणों से गुजरता है:
कॉन्फ़िगरेशन जनरेशन — .nvchecker/generate-nvchecker-config.py src/ के अंतर्गत प्रत्येक PKGBUILD को स्कैन करता है और स्वचालित रूप से .nvchecker/nvchecker.toml उत्पन्न करता है। प्रत्येक पैकेज को निम्न में से एक के रूप में वर्गीकृत किया जाता है:
pkgver= और एक रिमोट स्रोत URL होता है। होस्टिंग प्लेटफ़ॉर्म पर नवीनतम टैग/रिलीज़ द्वारा ट्रैक किया जाता है।pkgver() फ़ंक्शन और एक git+https:// स्रोत होता है। नवीनतम अपस्ट्रीम कमिट द्वारा ट्रैक किया जाता है।संस्करण जाँच — nvchecker प्रत्येक ट्रैक किए गए पैकेज के अपस्ट्रीम से पूछताछ करता है और परिणामों को .nvchecker/newver.json में लिखता है। इसकी तुलना .nvchecker/oldver.json (रिपॉजिटरी में प्रतिबद्ध) से की जाती है ताकि ऐसे पैकेज खोजे जा सकें जिनका नया संस्करण उपलब्ध है।
कॉन्फ़िगरेशन जनरेटर और CI वर्कफ़्लो दोनों source= लाइनों में शेल चर संदर्भों को हल करते हैं ताकि निम्नलिखित जैसे अप्रत्यक्ष URL को सही ढंग से संभाला जा सके:
_pkgname=${pkgname#athena-}
source=("git+https://github.com/Athena-OS/$_pkgname.git")
निम्नलिखित bash पैरामीटर विस्तार रूप समर्थित हैं:
निम्नलिखित bash निर्माण ऑटोमेशन द्वारा हल नहीं किए जाते हैं। उन पर निर्भर PKGBUILD को एक सूचनात्मक नोट के साथ शालीनता से छोड़ दिया जाएगा — कोई त्रुटि नहीं उठाई जाती है, और उन्हें हमेशा मैन्युअल रूप से अपडेट किया जा सकता है।
यदि आपका PKGBUILD उपरोक्त में से किसी का उपयोग करता है और ऑटोमेशन इसे छोड़ देता है, तो आप या तो असाइनमेंट को एक सादे var=value लाइन के रूप में फिर से लिख सकते हैं या मैन्युअल रूप से संस्करण अपडेट करने वाला PR खोल सकते हैं।
PKGBUILD अपडेट और PR — प्रत्येक पुराने पैकेज के लिए वर्कफ़्लो:
auto-update/<pkgname>-<newver> बनाता है।PKGBUILD में pkgver को अपडेट करता है और pkgrel को 1 पर रीसेट करता है।updpkgsums के साथ चेकसम को पुनर्जीवित करता है।131.940a5d3) की गणना करने के लिए स्थानीय रूप से pkgver() फ़ंक्शन चलाता है, और sha512sums=('SKIP') को यथावत रखता है।main पर कुछ भी उतरने से पहले मानव समीक्षा के लिए auto-update लेबल वाला एक पुल रिक्वेस्ट खोलता है।स्थिति सहेजें — .nvchecker/oldver.json को इस रन में देखे गए संस्करणों के साथ अपडेट किया जाता है और main पर वापस प्रतिबद्ध किया जाता है, ताकि अगला रन केवल वास्तविक नए परिवर्तनों के लिए PR खोले।
| प्लेटफ़ॉर्म | पता लगाना |
|---|
| GitHub | github.com/<user>/<repo> |
| GitLab (gitlab.com + स्व-होस्टेड) | gitlab.*/<user>/<repo> |
| Codeberg | codeberg.org/<user>/<repo> |
| Gitea (स्व-होस्टेड) | gitea.*/<user>/<repo> |
| Sourcehut | git.sr.ht/~<user>/<repo> |
| सिंटैक्स | अर्थ | उदाहरण |
|---|
$var / ${var} | सरल प्रतिस्थापन | $pkgname → athena-settings |
${var#prefix} | सबसे छोटे मिलान उपसर्ग को हटाएँ | ${pkgname#athena-} → settings |
${var%suffix} | सबसे छोटे मिलान प्रत्यय को हटाएँ | ${pkgname%-git} → athena-settings |
| असमर्थित सिंटैक्स | उदाहरण | कारण |
|---|
## लालची उपसर्ग हटाना | ${var##*/} | केवल गैर-लालची # लागू किया गया है |
%% लालची प्रत्यय हटाना | ${var%%.*} | केवल गैर-लालची % लागू किया गया है |
| सबस्ट्रिंग निष्कर्षण | ${var:0:3} | भिन्न ऑपरेटर, PKGBUILD में दुर्लभ |
| पैटर्न प्रतिस्थापन | ${var//foo/bar} | भिन्न ऑपरेटर, PKGBUILD में दुर्लभ |
| अंकगणितीय विस्तार | $((pkgver + 1)) | संस्करण ट्रैकिंग के दायरे से बाहर |
| नेस्टेड विस्तार | ${${var}#prefix} | मान्य POSIX नहीं; व्यवहार में उपयोग नहीं किया जाता |