#!/bin/bash

ARGS=()  # positional arguments

while [ $# -gt 0 ]; do
  case "$1" in
    # --key=value or -k=value
    --*=* | -*=*)
      key=${1%%=*}
      key=${key#--}
      key=${key#-}
      key=$(printf '%s' "$key" | tr 'a-z-' 'A-Z_')

      val=${1#*=}
      export "$key=$val"

      unset key val
      shift
      ;;
    # --key or -k → boolean flag only
    --* | -*)
      key=${1#--}
      key=${key#-}
      key=$(printf '%s' "$key" | tr 'a-z-' 'A-Z_')

      export "$key=1"

      unset key
      shift
      ;;
    # positional arguments
    *)
      ARGS+=("$1")
      shift
      ;;
  esac
done