Scriptbibliotek/templates/template.py

58 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""Kort, én-setnings beskrivelse av hva scriptet gjør.
Lengre beskrivelse av formål, virkemåte og forutsetninger.
Bruk:
python snake_case.py --eksempel "verdi" [--dry-run]
Eksempel:
python snake_case.py --eksempel "verdi" --dry-run
Metadata:
Forfatter : Fornavn Etternavn (initialer)
Opprettet : ÅÅÅÅ-MM-DD
Versjon : 1.0.0
Plattform : <tjeneste / API>
Krav : Python 3.9+, pakker: <f.eks. requests, msal>
Tags : tag1, tag2
Endringslogg:
ÅÅÅÅ-MM-DD 1.0.0 Første versjon (initialer)
SIKKERHET: Aldri hemmeligheter i koden. Les dem fra miljøvariabler,
f.eks. os.environ["API_TOKEN"].
"""
from __future__ import annotations
import argparse
import logging
import sys
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s")
log = logging.getLogger(__name__)
def parse_args() -> argparse.Namespace:
p = argparse.ArgumentParser(description=__doc__.splitlines()[0])
p.add_argument("--eksempel", required=True, help="Beskriv parameteren.")
p.add_argument("--dry-run", action="store_true", help="Tørrkjør uten endringer.")
return p.parse_args()
def main() -> int:
args = parse_args()
try:
if args.dry_run:
log.info("[dry-run] Ville kjørt mot: %s", args.eksempel)
return 0
# --- Hovedlogikk her ---
log.info("Kjører mot: %s", args.eksempel)
return 0
except Exception as exc: # noqa: BLE001
log.error("Feilet: %s", exc)
return 1
if __name__ == "__main__":
sys.exit(main())