1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package fake
- import (
- "archive/tar"
- "bytes"
- "github.com/kr/pty"
- "io"
- "math/rand"
- "os/exec"
- )
- func FakeTar() (io.Reader, error) {
- content := []byte("Hello world!\n")
- buf := new(bytes.Buffer)
- tw := tar.NewWriter(buf)
- for _, name := range []string{"/etc/postgres/postgres.conf", "/etc/passwd", "/var/log/postgres/postgres.conf"} {
- hdr := new(tar.Header)
- hdr.Size = int64(len(content))
- hdr.Name = name
- if err := tw.WriteHeader(hdr); err != nil {
- return nil, err
- }
- tw.Write([]byte(content))
- }
- tw.Close()
- return buf, nil
- }
- func WriteFakeTar(dst io.Writer) error {
- if data, err := FakeTar(); err != nil {
- return err
- } else if _, err := io.Copy(dst, data); err != nil {
- return err
- }
- return nil
- }
- func RandomBytesChanged() uint {
- return uint(rand.Int31n(24 * 1024 * 1024))
- }
- func RandomFilesChanged() uint {
- return uint(rand.Int31n(42))
- }
- func RandomContainerSize() uint {
- return uint(rand.Int31n(142 * 1024 * 1024))
- }
- func ContainerRunning() bool {
- return false
- }
- func StartCommand(cmd *exec.Cmd, interactive bool) (io.WriteCloser, io.ReadCloser, error) {
- if interactive {
- term, err := pty.Start(cmd)
- if err != nil {
- return nil, nil, err
- }
- return term, term, nil
- }
- stdin, err := cmd.StdinPipe()
- if err != nil {
- return nil, nil, err
- }
- stdout, err := cmd.StdoutPipe()
- if err != nil {
- return nil, nil, err
- }
- if err := cmd.Start(); err != nil {
- return nil, nil, err
- }
- return stdin, stdout, nil
- }
|