// Copyright 2013 @atotto. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build darwin package clipboard import ( "os/exec" ) var ( pasteCmdArgs = "pbpaste" copyCmdArgs = "pbcopy" ) func getPasteCommand() *exec.Cmd { return exec.Command(pasteCmdArgs) } func getCopyCommand() *exec.Cmd { return exec.Command(copyCmdArgs) } func readAll(register string) (string, error) { if register != "clipboard" { return "", nil } pasteCmd := getPasteCommand() out, err := pasteCmd.Output() if err != nil { return "", err } return string(out), nil } func writeAll(text string, register string) error { if register != "clipboard" { return nil } copyCmd := getCopyCommand() in, err := copyCmd.StdinPipe() if err != nil { return err } if err := copyCmd.Start(); err != nil { return err } if _, err := in.Write([]byte(text)); err != nil { return err } if err := in.Close(); err != nil { return err } return copyCmd.Wait() }