in packaging/linux/deb/debroot.go [583:628]
func ReadDistroVersionID(ctx context.Context, client gwclient.Client, st llb.State) (string, error) {
rootfs, err := bkfs.FromState(ctx, &st, client)
if err != nil {
return "", err
}
f, err := rootfs.Open("etc/os-release")
if err != nil {
return "", err
}
defer f.Close()
scanner := bufio.NewScanner(f)
var (
id string
version string
)
for scanner.Scan() {
k, v, ok := strings.Cut(scanner.Text(), "=")
if !ok {
continue
}
switch k {
case "ID":
id = unquote(v)
case "VERSION_ID":
version = unquote(v)
}
if id != "" && version != "" {
break
}
}
if scanner.Err() != nil {
return "", err
}
if id == "" || version == "" {
return "", errors.New("could not determine distro or version ID")
}
return id + version, nil
}