//go:build !embed_pomerium

package ui

import (
	"embed"
	"fmt"
	"io/fs"
	"os"
	"path/filepath"
)

var (
	//go:embed dist/*
	uiFS embed.FS
)

func openFile(name string) (f fs.File, etag string, err error) {
	f, err = os.Open(filepath.Join("ui", name))
	if os.IsNotExist(err) {
		f, err = uiFS.Open(name)
	}
	if err != nil {
		return nil, "", err
	}

	fi, err := f.Stat()
	if err != nil {
		_ = f.Close()
		return nil, "", err
	}

	modTime := fi.ModTime()
	if modTime.IsZero() {
		modTime = startTime
	}
	etag = fmt.Sprintf("%x", modTime.UnixNano())

	return f, etag, nil
}