{{- if ne .host.distro.family "windows" -}}
#!/usr/bin/env bash

{{ includeTemplate "universal/profile" }}
{{ includeTemplate "universal/logg" }}

### Ensure Chrome policies directory is present
for POLICY_DIR in "/opt/google/chrome/policies" "/etc/chromium/policies" "/etc/brave/policies"; do
    ### Managed policies
    if [ ! -f "$POLICY_DIR/managed/policies.json" ]; then
        logg info "Ensuring directory $POLICY_DIR/managed exists"
        sudo mkdir -p "$POLICY_DIR/managed"
        logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/chrome/managed.json to $POLICY_DIR/managed/policies.json"
        sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/managed.json" "$POLICY_DIR/managed/policies.json"
    fi

    ### Recommended policies
    if [ ! -f "$POLICY_DIR/recommended/policies.json" ]; then
        logg info "Ensuring directory $POLICY_DIR/recommended exists"
        sudo mkdir -p "$POLICY_DIR/recommended"
        logg info "Copying ${XDG_CONFIG_HOME:-$HOME/.config}/chrome/recommended.json to $POLICY_DIR/recommended/policies.json"
        sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/recommended.json" "$POLICY_DIR/recommended/policies.json"
    fi
done

### Add Chrome extension JSON
for EXTENSION_DIR in "/opt/google/chrome/extensions" "/etc/chromium/extensions" "/etc/brave/extensions" "$HOME/Library/Application Support/Google/Chrome/External Extensions" "$HOME/Library/Application Support/Microsoft/Edge/External Extensions" "$HOME/Library/Application Support/BraveSoftware/Brave-Browser/External Extensions" ; do
    ### Ensure program-type is installed
    if [ -d "$(dirname "$EXTENSION_DIR")" ]; then
        ### Ensure extension directory exists
        if [[ "$EXTENSION_DIR" == '/opt/'* ]] || [[ "$EXTENSION_DIR" == '/etc/'* ]]; then
            if [ ! -d "$EXTENSION_DIR" ]; then
                logg info "Creating directory $EXTENSION_DIR"
                sudo mkdir -p "$EXTENSION_DIR"
            fi
        else
            if [ ! -d "$EXTENSION_DIR" ]; then
                logg info "Creating directory $EXTENSION_DIR"
                mkdir -p "$EXTENSION_DIR"
            fi
        fi

        ### Add extension JSON
        logg info "Adding Chrome extensions to $EXTENSION_DIR"
        for EXTENSION in {{ list (.chromeExtensions | toString | replace "[" "" | replace "]" "") | uniq | join " " }}; do
            logg info "Adding Chrome extension manifest ($EXTENSION)"
            EXTENSION_ID="$(echo "$EXTENSION" | sed 's/^.*\/\([^\/]*\)$/\1/')"
            if [[ "$EXTENSION_DIR" == '/opt/'* ]] || [[ "$EXTENSION_DIR" == '/etc/'* ]]; then
                sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/extension.json" "$EXTENSION_DIR/${EXTENSION_ID}.json"
            else
                cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/chrome/extension.json" "$EXTENSION_DIR/${EXTENSION_ID}.json"
            fi
        done
    else
        logg info "$EXTENSION_DIR does not exist"
    fi
done

{{ end -}}
