reload_flag=""
if [[ -n "${DEBUG}" ]]; then
reload_flag="--reload"
fi
if [[ -n "${WORKER_COUNT}" ]]; then
workers=${WORKER_COUNT}
else
workers=2
fi
gunicorn --workers ${workers} \
--bind 0.0.0.0:8000 \
${reload_flag} main.wsgi
Писали такие конструкции чтобы проверить наличие флага и сформировать команду правильно?
На самом деле можно сделать тоже самое проще. Для этого используются операторы условной подстановки, доступные в оболочках семейства POSIX.
:- для установки значений по умолчанию
${WORKER_COUNT:-2}
Если переменная не объявлена, то будет дефолтное значение 2.
:+ подставляет указанный текст, если переменная не пуста
${DEBUG:+--reload}
Если что-то есть в переменной то распечатается текст после символа +, в противном случае - ничего. Удобно для опциональных флагов, как в нашем примере.
Итого наш скрипт может выглядеть так:
gunicorn --workers ${WORKER_COUNT:-2} \
--bind 0.0.0.0:8000 \
${DEBUG:+--reload} main.wsgi
Есть еще два оператора.
:= не только подставить дефолтное значение, но и присвоить его переменной, если она пуста
# никаких переменных еще нет
VAL1=${VAL2:=hello}
# теперь доступны обе
echo $VAL1 $VAL2
# hello hello
:? остановить выполнение с ошибкой, если переменной нет.
echo ${MISS:?is required}
bash: MISS: is required
Код выхода будет 1.
#tricks#linux
http://www.csestack.org/python-list-installed-modules-versions-pip/
The main strength of the Python is, the wide range of external #libraries are available. As we keep coding in Python, we install many packages. It is easy getting a Python list installed #modules on the system. There are a couple of ways you can do that.
Vanadium WebView & Browser Installer
A Magisk/KernelSU module that changes the system WebView with Vanadium WebView and installs the Vanadium Browser.
🔗 Links:
- Download
- Features
- Prerequisites
- Support group
- Source code
Developer: NoneBaiano
Banner by @rkbdi (from Ultimatum browser inspiration)
❤️ Support the Project
If this project makes your life easier, here are a few quick ways to show some love:
⭐ Star the repo/app
☕ Buy a coffee for the developer
🛠 Contribute code, issues, or pull-requests.
🏷 Tags: #Android#Root#Modules
pairipfix
This LSPosed module bypasses the "Get this app from Play" screen that appears when installing Android apps as an APK instead of from the Google Play Store.
🔗 Links:
- Download
- Source code
Developer: ahmedmani
❤️ Support the Project
If this project makes your life easier, here are a few quick ways to show some love:
⭐ Star the repo/app
☕ Buy a coffee for the developer
🛠 Contribute code, issues, or pull-requests
🏷 Tags: #Android#Xposed#Modules
AnghamiPlus
AnghamiPlus is a sophisticated Xposed module that enhances your Anghami music streaming experience by unlocking plus-like features directly on the client side. Built with a modular and safe hooking architecture, it provides plus functionality without modifying server behavior or compromising your account security.
🔗 Links:
- Download
- Features
- How to use
- Support group and channel
- Source code
Developer: Kero309x
❤️ Support the Project
If this project makes your life easier, here are a few quick ways to show some love:
⭐ Star the repo/app
☕ Buy a coffee for the developer
🛠 Contribute code, issues, or pull-requests
⚠️ This app might be breaking copyright laws, use at your own risk. We are not responsible for anything. We are just sharing open source software.
🏷 Tags: #Android#Music#Xposed#LSPatch#Modules
https://docs.python.org/3/library/subprocess.html
The #subprocess module allows you to spawn new #processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace several older #modules and #functions.
#python
https://docs.python.org/3/library/modulefinder.html
This module provides a #ModuleFinder class that can be used to determine the set of #modules#imported by a #script. modulefinder.py can also be run as a script, giving the #filename of a Python script as its argument, after which a report of the imported modules will be printed.
http://www.techbeamers.com/python-tutorial-essentials-of-python-socket-programming/
Essentials of Python #Socket Programming You Should Know
Python offers two types of #API libraries that we can use for socket programming. At the low-level, Python utilizes the “socket” library to implement #client and #server#modules for both #connectionless and #connection-oriented #network protocols. Whereas, at the higher-level, You can use libraries like #ftplib and #httplib to interact with application-level network protocols like #FTP and #HTTP.