[FORGEJO] add support for the lxc:// scheme

pull/110/head
Earl Warren 2023-11-09 03:55:09 +01:00
parent 92cd7c8e19
commit cf2608d1ea
No known key found for this signature in database
GPG Key ID: 0579CB2928A78A00
1 changed files with 4 additions and 1 deletions

View File

@ -11,6 +11,7 @@ import (
const ( const (
SchemeHost = "host" SchemeHost = "host"
SchemeDocker = "docker" SchemeDocker = "docker"
SchemeLXC = "lxc"
) )
type Label struct { type Label struct {
@ -32,7 +33,7 @@ func Parse(str string) (*Label, error) {
if len(splits) >= 3 { if len(splits) >= 3 {
label.Arg = splits[2] label.Arg = splits[2]
} }
if label.Schema != SchemeHost && label.Schema != SchemeDocker { if label.Schema != SchemeHost && label.Schema != SchemeDocker && label.Schema != SchemeLXC {
return nil, fmt.Errorf("unsupported schema: %s", label.Schema) return nil, fmt.Errorf("unsupported schema: %s", label.Schema)
} }
return label, nil return label, nil
@ -59,6 +60,8 @@ func (l Labels) PickPlatform(runsOn []string) string {
platforms[label.Name] = strings.TrimPrefix(label.Arg, "//") platforms[label.Name] = strings.TrimPrefix(label.Arg, "//")
case SchemeHost: case SchemeHost:
platforms[label.Name] = "-self-hosted" platforms[label.Name] = "-self-hosted"
case SchemeLXC:
platforms[label.Name] = "lxc:" + strings.TrimPrefix(label.Arg, "//")
default: default:
// It should not happen, because Parse has checked it. // It should not happen, because Parse has checked it.
continue continue