
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 (रिपॉजिटरी में कमिट किया गया) से तुलना की जाती है ताकि ऐसे पैकेज खोजे जा सकें जिनका नया संस्करण उपलब्ध है।
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 + self-hosted) | gitlab.*/<user>/<repo> |
| Codeberg | codeberg.org/<user>/<repo> |
| Gitea (self-hosted) | gitea.*/<user>/<repo> |
| Sourcehut | git.sr.ht/~<user>/<repo> |
कॉन्फ़िग जनरेटर और CI वर्कफ़्लो दोनों source= पंक्तियों में शेल वेरिएबल संदर्भों को हल करते हैं ताकि निम्नलिखित जैसे अप्रत्यक्ष URL सही ढंग से संभाले जा सकें:
_pkgname=${pkgname#athena-}
source=("git+https://github.com/Athena-OS/$_pkgname.git")
निम्नलिखित bash पैरामीटर विस्तार रूप समर्थित हैं:
| सिंटैक्स | अर्थ | उदाहरण |
|---|---|---|
$var / ${var} | सरल प्रतिस्थापन | $pkgname → athena-settings |
${var#prefix} | सबसे छोटा मेल खाता प्रीफ़िक्स हटाएँ | ${pkgname#athena-} → settings |
${var%suffix} | सबसे छोटा मेल खाता सफ़िक्स हटाएँ | ${pkgname%-git} → athena-settings |
निम्नलिखित bash निर्माण ऑटोमेशन द्वारा नहीं हल किए जाते हैं। जो PKGBUILDs इन पर निर्भर करते हैं, उन्हें सूचनात्मक नोट के साथ शालीनता से छोड़ दिया जाएगा — कोई त्रुटि नहीं उठाई जाती, और उन्हें हमेशा मैन्युअल रूप से अपडेट किया जा सकता है।
| असमर्थित सिंटैक्स | उदाहरण | कारण |
|---|---|---|
## ग्रीडी प्रीफ़िक्स स्ट्रिप | ${var##*/} | केवल नॉन-ग्रीडी # लागू किया गया है |
%% ग्रीडी सफ़िक्स स्ट्रिप | ${var%%.*} | केवल नॉन-ग्रीडी % लागू किया गया है |
| सबस्ट्रिंग निष्कर्षण | ${var:0:3} | भिन्न ऑपरेटर, PKGBUILDs में दुर्लभ |
| पैटर्न प्रतिस्थापन | ${var//foo/bar} | भिन्न ऑपरेटर, PKGBUILDs में दुर्लभ |
| अंकगणितीय विस्तार | $((pkgver + 1)) | संस्करण ट्रैकिंग के दायरे से बाहर |
| नेस्टेड विस्तार | ${${var}#prefix} | वैध POSIX नहीं; व्यवहार में उपयोग नहीं किया जाता |
यदि आपका PKGBUILD उपरोक्त में से किसी का उपयोग करता है और ऑटोमेशन इसे छोड़ देता है, तो आप या तो असाइनमेंट को सादे var=value लाइन के रूप में फिर से लिख सकते हैं या मैन्युअल रूप से संस्करण अपडेट करते हुए एक PR खोल सकते हैं।
LOL Omuamua