...

Source file src/github.com/emissary-ingress/emissary/v3/cmd/entrypoint/helpers.go

Documentation: github.com/emissary-ingress/emissary/v3/cmd/entrypoint

     1  package entrypoint
     2  
     3  import (
     4  	"context"
     5  	"encoding/json"
     6  	"os"
     7  	"strings"
     8  
     9  	"github.com/datawire/dlib/dexec"
    10  )
    11  
    12  func envbool(name string) bool {
    13  	return os.Getenv(name) != ""
    14  }
    15  
    16  func env(name, defaultValue string) string {
    17  	value := os.Getenv(name)
    18  	if value != "" {
    19  		return value
    20  	} else {
    21  		return defaultValue
    22  	}
    23  }
    24  
    25  func ensureDir(dirname string) error {
    26  	err := os.MkdirAll(dirname, 0700)
    27  	if err != nil && os.IsExist(err) {
    28  		err = nil
    29  	}
    30  	return err
    31  }
    32  
    33  func cidsForLabel(ctx context.Context, label string) ([]string, error) {
    34  	bs, err := dexec.CommandContext(ctx, "docker", "ps", "-q", "-f", "label="+label).CombinedOutput()
    35  	if err != nil {
    36  		return nil, err
    37  	}
    38  	return strings.Fields(string(bs)), nil
    39  }
    40  
    41  func subcommand(ctx context.Context, command string, args ...string) *dexec.Cmd {
    42  	cmd := dexec.CommandContext(ctx, command, args...)
    43  	cmd.Stdin = os.Stdin
    44  	cmd.Stdout = os.Stdout
    45  	cmd.Stderr = os.Stderr
    46  	return cmd
    47  }
    48  
    49  func convert(in interface{}, out interface{}) error {
    50  	if out == nil {
    51  		return nil
    52  	}
    53  
    54  	jsonBytes, err := json.Marshal(in)
    55  	if err != nil {
    56  		return err
    57  	}
    58  
    59  	err = json.Unmarshal(jsonBytes, out)
    60  	if err != nil {
    61  		return err
    62  	}
    63  
    64  	return nil
    65  }
    66  

View as plain text