From 9da7e3298a3ef36f07bab45ce984b1ee19b14ac0 Mon Sep 17 00:00:00 2001 From: Nate Meyer <672246+notnmeyer@users.noreply.github.com> Date: Wed, 18 Jun 2025 08:56:18 -0700 Subject: [PATCH 1/2] remove clipboard package, do it ourselves. mac only --- cmd/copy.go | 54 ++++++++++++++++++++++++++++++++++++++++++++++------- go.mod | 4 ---- go.sum | 8 -------- tasks.toml | 1 + 4 files changed, 48 insertions(+), 19 deletions(-) diff --git a/cmd/copy.go b/cmd/copy.go index 92e07e9..7a49936 100644 --- a/cmd/copy.go +++ b/cmd/copy.go @@ -3,10 +3,11 @@ package cmd import ( "fmt" "log" + "os/exec" + "runtime" "github.com/notnmeyer/daylog-cli/internal/daylog" "github.com/spf13/cobra" - "golang.design/x/clipboard" ) var copyCmd = &cobra.Command{ @@ -24,6 +25,12 @@ var copyCmd = &cobra.Command{ log.Fatalf("%s", err.Error()) } + // only going to worry about mac for now. this is hard to test on headless linux. help wanted. + if runtime.GOOS != "darwin" { + msg := fmt.Sprintf("copy not supported on %s\n", runtime.GOOS) + log.Fatal(msg) + } + err = copy([]byte(logContents)) if err != nil { log.Fatalf("Failed to copy to clipboard: %v", err) @@ -33,15 +40,48 @@ var copyCmd = &cobra.Command{ }, } +func init() { + rootCmd.AddCommand(copyCmd) +} + func copy(content []byte) error { - err := clipboard.Init() + var err error = nil + + switch runtime.GOOS { + case "darwin": + err = pbcopy([]byte(content)) + } + + return err +} + +func pbcopy(content []byte) error { + cmd := exec.Command("pbcopy") + + in, err := cmd.StdinPipe() if err != nil { return err } - clipboard.Write(clipboard.FmtText, content) - return nil -} -func init() { - rootCmd.AddCommand(copyCmd) + err = cmd.Start() + if err != nil { + return err + } + + _, err = in.Write(content) + if err != nil { + return err + } + + err = in.Close() + if err != nil { + return err + } + + err = cmd.Wait() + if err != nil { + return err + } + + return nil } diff --git a/go.mod b/go.mod index a29c649..96246bd 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,6 @@ require ( github.com/charmbracelet/glamour v0.6.0 github.com/markusmobius/go-dateparser v1.2.3 github.com/spf13/cobra v1.8.0 - golang.design/x/clipboard v0.7.0 ) require ( @@ -38,9 +37,6 @@ require ( github.com/yuin/goldmark v1.5.2 // indirect github.com/yuin/goldmark-emoji v1.0.1 // indirect golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705 // indirect - golang.org/x/exp/shiny v0.0.0-20250606033433-dcc06ee1d476 // indirect - golang.org/x/image v0.14.0 // indirect - golang.org/x/mobile v0.0.0-20231127183840-76ac6878050a // indirect golang.org/x/net v0.22.0 // indirect golang.org/x/sys v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect diff --git a/go.sum b/go.sum index 34244e8..f837fa4 100644 --- a/go.sum +++ b/go.sum @@ -72,16 +72,8 @@ github.com/yuin/goldmark v1.5.2 h1:ALmeCk/px5FSm1MAcFBAsVKZjDuMVj8Tm7FFIlMJnqU= github.com/yuin/goldmark v1.5.2/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/goldmark-emoji v1.0.1 h1:ctuWEyzGBwiucEqxzwe0SOYDXPAucOrE9NQC18Wa1os= github.com/yuin/goldmark-emoji v1.0.1/go.mod h1:2w1E6FEWLcDQkoTE+7HU6QF1F6SLlNGjRIBbIZQFqkQ= -golang.design/x/clipboard v0.7.0 h1:4Je8M/ys9AJumVnl8m+rZnIvstSnYj1fvzqYrU3TXvo= -golang.design/x/clipboard v0.7.0/go.mod h1:PQIvqYO9GP29yINEfsEn5zSQKAz3UgXmZKzDA6dnq2E= golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705 h1:ba9YlqfDGTTQ5aZ2fwOoQ1hf32QySyQkR6ODGDzHlnE= golang.org/x/exp v0.0.0-20220321173239-a90fa8a75705/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= -golang.org/x/exp/shiny v0.0.0-20250606033433-dcc06ee1d476 h1:Wdx0vgH5Wgsw+lF//LJKmWOJBLWX6nprsMqnf99rYDE= -golang.org/x/exp/shiny v0.0.0-20250606033433-dcc06ee1d476/go.mod h1:ygj7T6vSGhhm/9yTpOQQNvuAUFziTH7RUiH74EoE2C8= -golang.org/x/image v0.14.0 h1:tNgSxAFe3jC4uYqvZdTr84SZoM1KfwdC9SKIFrLjFn4= -golang.org/x/image v0.14.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE= -golang.org/x/mobile v0.0.0-20231127183840-76ac6878050a h1:sYbmY3FwUWCBTodZL1S3JUuOvaW6kM2o+clDzzDNBWg= -golang.org/x/mobile v0.0.0-20231127183840-76ac6878050a/go.mod h1:Ede7gF0KGoHlj822RtphAHK1jLdrcuRBZg0sF1Q+SPc= golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= diff --git a/tasks.toml b/tasks.toml index b2c4147..7b6a6c9 100644 --- a/tasks.toml +++ b/tasks.toml @@ -2,6 +2,7 @@ cmds = ["go mod tidy"] [tasks.build] +deps = [["deps"]] cmds = ["go build -o dist/daylog ./main.go {{.CLI_ARGS}}"] [tasks."build:demo"] From 810bc3e853c40650d5a0af47316894a4502cadc9 Mon Sep 17 00:00:00 2001 From: Nate Meyer <672246+notnmeyer@users.noreply.github.com> Date: Wed, 18 Jun 2025 09:03:08 -0700 Subject: [PATCH 2/2] redundant cast --- cmd/copy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/copy.go b/cmd/copy.go index 7a49936..0db4a08 100644 --- a/cmd/copy.go +++ b/cmd/copy.go @@ -49,7 +49,7 @@ func copy(content []byte) error { switch runtime.GOOS { case "darwin": - err = pbcopy([]byte(content)) + err = pbcopy(content) } return err