auto.go 737 Bytes
Newer Older
songlinfeng's avatar
songlinfeng committed
1
2
3
4
5
6
7
/**
# Copyright (c) 2024, HCUOpt CORPORATION.  All rights reserved.
**/

package info

import (
8
9
	"dcu-container-toolkit/internal/config/image"
	"dcu-container-toolkit/internal/logger"
songlinfeng's avatar
songlinfeng committed
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
)

// ResolveAutoMode determines the correct mode for the platform if set to "auto"
func ResolveAutoMode(logger logger.Interface, mode string, image image.DTK) (rmode string) {
	return resolveMode(logger, mode, image)
}

func resolveMode(logger logger.Interface, mode string, image image.DTK) (rmode string) {
	if mode != "auto" {
		logger.Infof("Using requested mode '%s'", mode)
		return mode
	}
	defer func() {
		logger.Infof("Auto-detected mode as '%v'", rmode)
	}()

	if image.OnlyFullyQualifiedCDIDevices() {
		return "cdi"
	}

	return "legacy"
}