1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
package open
import (
"context"
"errors"
"fmt"
)
// ErrNotSupported occurs when no ways to open a file are found.
var ErrNotSupported = errors.New("not supported")
// Open the given input.
func Open(ctx context.Context, input string) error {
return With(ctx, "", input)
}
// With opens the given input using the given app.
func With(ctx context.Context, app, input string) error {
cmd := buildCmd(ctx, app, input)
if cmd == nil {
return ErrNotSupported
}
out, err := cmd.CombinedOutput()
if err != nil {
return fmt.Errorf("open: %w: %s", err, string(out))
}
return nil
}
|