Allow to set parameter using environment variables PLUGIN_* or APTLY_*

This commit is contained in:
Benjamin Renard 2022-11-30 20:15:37 +01:00
parent 4529061bc4
commit 59214019ba

View file

@ -16,28 +16,36 @@ from urllib3.util import Retry
from debian_parser import PackagesParser from debian_parser import PackagesParser
def from_env(name, default=None):
""" Retrieve a parameter from environment """
for var in (f'PLUGIN_{name}', f'APTLY_{name}'):
if var in os.environ:
return os.environ[var]
return default
# Handle parameters from environment # Handle parameters from environment
API_URL = os.environ.get('PLUGIN_API_URL', None) API_URL = from_env('API_URL', None)
if not API_URL: if not API_URL:
print('API URL not provided') print('API URL not provided')
sys.exit(1) sys.exit(1)
API_USERNAME = os.environ.get('PLUGIN_API_USERNAME', None) API_USERNAME = from_env('API_USERNAME', None)
if not API_USERNAME: if not API_USERNAME:
print('API username not provided') print('API username not provided')
sys.exit(1) sys.exit(1)
API_PASSWORD = os.environ.get('PLUGIN_API_PASSWORD', None) API_PASSWORD = from_env('API_PASSWORD', None)
if not API_PASSWORD: if not API_PASSWORD:
print('API password not provided') print('API password not provided')
sys.exit(1) sys.exit(1)
MAX_RETRY = os.environ.get('PLUGIN_MAX_RETRIES', None) MAX_RETRY = from_env('MAX_RETRIES', None)
REPO_NAME = os.environ.get('PLUGIN_REPO_NAME', 'stable') REPO_NAME = from_env('REPO_NAME', 'stable')
REPO_COMPONENT = os.environ.get('PLUGIN_REPO_COMPONENT', 'main') REPO_COMPONENT = from_env('REPO_COMPONENT', 'main')
DIST = os.environ.get('PLUGIN_PATH', 'dist') INPUT_PATH = from_env('PATH', 'dist')
SOURCE_NAME = os.environ.get('PLUGIN_SOURCE_PACKAGE_NAME', None) SOURCE_NAME = from_env('SOURCE_PACKAGE_NAME', None)
# List changes files # List changes files
changes_files_regex = ( changes_files_regex = (
@ -48,21 +56,21 @@ changes_files_regex = (
) )
changes_files = [] changes_files = []
try: try:
for filename in os.listdir(DIST): for filename in os.listdir(INPUT_PATH):
filepath = os.path.join(DIST, filename) filepath = os.path.join(INPUT_PATH, filename)
if not os.path.isfile(filepath): if not os.path.isfile(filepath):
continue continue
if changes_files_regex.match(filename): if changes_files_regex.match(filename):
changes_files.append(filepath) changes_files.append(filepath)
except FileNotFoundError: except FileNotFoundError:
print(f'Specified directory path "{DIST}" not found') print(f'Specified directory path "{INPUT_PATH}" not found')
sys.exit(1) sys.exit(1)
except NotADirectoryError: except NotADirectoryError:
print(f'Specified path "{DIST}" is not a directory') print(f'Specified path "{INPUT_PATH}" is not a directory')
sys.exit(1) sys.exit(1)
if not changes_files: if not changes_files:
print(f'No changes file found in {DIST}') print(f'No changes file found in {INPUT_PATH}')
sys.exit(1) sys.exit(1)