skip
This commit is contained in:
@@ -20,9 +20,12 @@ const (
|
||||
)
|
||||
|
||||
type packageConfig struct {
|
||||
targets map[string]string
|
||||
targets map[string]string
|
||||
disabled map[string]bool
|
||||
}
|
||||
|
||||
var errTargetDisabled = errors.New("target disabled for this platform")
|
||||
|
||||
func main() {
|
||||
if len(os.Args) < 2 {
|
||||
usage()
|
||||
@@ -179,8 +182,11 @@ func resolvePathSpec(pathSpec, repoAbs string) (string, string, error) {
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
targetRoot, err := selectTarget(cfg.targets)
|
||||
targetRoot, err := selectTarget(cfg)
|
||||
if err != nil {
|
||||
if errors.Is(err, errTargetDisabled) {
|
||||
continue
|
||||
}
|
||||
continue
|
||||
}
|
||||
absTarget, err := filepath.Abs(expandHome(targetRoot))
|
||||
@@ -240,8 +246,11 @@ func applyCmd(args []string) error {
|
||||
return fmt.Errorf("%s: %w", entry.Name(), err)
|
||||
}
|
||||
|
||||
targetRoot, err := selectTarget(cfg.targets)
|
||||
targetRoot, err := selectTarget(cfg)
|
||||
if err != nil {
|
||||
if errors.Is(err, errTargetDisabled) {
|
||||
continue
|
||||
}
|
||||
return fmt.Errorf("%s: %w", entry.Name(), err)
|
||||
}
|
||||
|
||||
@@ -427,7 +436,7 @@ func unlinkCmd(args []string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
targetRoot, err := selectTarget(cfg.targets)
|
||||
targetRoot, err := selectTarget(cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -487,7 +496,7 @@ func removeCmd(args []string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
targetRoot, err := selectTarget(cfg.targets)
|
||||
targetRoot, err := selectTarget(cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -620,19 +629,31 @@ func loadConfig(path string) (*packageConfig, error) {
|
||||
}
|
||||
|
||||
targets := make(map[string]string)
|
||||
disabled := make(map[string]bool)
|
||||
targetTbl.ForEach(func(k, v lua.LValue) {
|
||||
ks, ok1 := k.(lua.LString)
|
||||
vs, ok2 := v.(lua.LString)
|
||||
if ok1 && ok2 {
|
||||
targets[string(ks)] = expandHome(string(vs))
|
||||
ks, ok := k.(lua.LString)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
if v == lua.LNil || v == lua.LFalse {
|
||||
disabled[string(ks)] = true
|
||||
return
|
||||
}
|
||||
|
||||
vs, ok := v.(lua.LString)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
targets[string(ks)] = expandHome(string(vs))
|
||||
})
|
||||
|
||||
if len(targets) == 0 {
|
||||
if len(targets) == 0 && len(disabled) == 0 {
|
||||
return nil, errors.New("config.target is empty")
|
||||
}
|
||||
|
||||
return &packageConfig{targets: targets}, nil
|
||||
return &packageConfig{targets: targets, disabled: disabled}, nil
|
||||
}
|
||||
|
||||
func statusCmd() error {
|
||||
@@ -658,8 +679,11 @@ func statusCmd() error {
|
||||
return fmt.Errorf("%s: %w", entry.Name(), err)
|
||||
}
|
||||
|
||||
targetRoot, err := selectTarget(cfg.targets)
|
||||
targetRoot, err := selectTarget(cfg)
|
||||
if err != nil {
|
||||
if errors.Is(err, errTargetDisabled) {
|
||||
continue
|
||||
}
|
||||
return fmt.Errorf("%s: %w", entry.Name(), err)
|
||||
}
|
||||
|
||||
@@ -682,15 +706,18 @@ func statusCmd() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func selectTarget(targets map[string]string) (string, error) {
|
||||
func selectTarget(cfg *packageConfig) (string, error) {
|
||||
osKey := runtime.GOOS
|
||||
if osKey == "darwin" {
|
||||
osKey = "macos"
|
||||
}
|
||||
if target, ok := targets[osKey]; ok {
|
||||
if cfg.disabled[osKey] {
|
||||
return "", errTargetDisabled
|
||||
}
|
||||
if target, ok := cfg.targets[osKey]; ok {
|
||||
return expandHome(target), nil
|
||||
}
|
||||
if target, ok := targets["default"]; ok {
|
||||
if target, ok := cfg.targets["default"]; ok {
|
||||
return expandHome(target), nil
|
||||
}
|
||||
return "", fmt.Errorf("missing target for %s and default", osKey)
|
||||
@@ -877,8 +904,11 @@ func findPackageByTarget(repo, targetRoot string) (string, error) {
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
target, err := selectTarget(cfg.targets)
|
||||
target, err := selectTarget(cfg)
|
||||
if err != nil {
|
||||
if errors.Is(err, errTargetDisabled) {
|
||||
continue
|
||||
}
|
||||
continue
|
||||
}
|
||||
absPkgTarget, err := filepath.Abs(expandHome(target))
|
||||
|
||||
Reference in New Issue
Block a user