Commit 926ffa7f authored by Bruce MacDonald's avatar Bruce MacDonald Committed by Jeffrey Morgan
Browse files

refactor cmd

parent 4a36f374
...@@ -14,36 +14,17 @@ import ( ...@@ -14,36 +14,17 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
func sockpath() string { func cacheDir() string {
home, err := os.UserHomeDir() home, err := os.UserHomeDir()
if err != nil { if err != nil {
panic(err) panic(err)
} }
return path.Join(home, ".ollama", "ollama.sock") return path.Join(home, ".ollama")
}
func running() bool {
// Set a timeout duration
timeout := time.Second
// Dial the unix socket
conn, err := net.DialTimeout("unix", sockpath(), timeout)
if err != nil {
return false
}
if conn != nil {
defer conn.Close()
}
return true
} }
func serve() error { func serve() error {
sp := sockpath() sp := path.Join(cacheDir(), "ollama.sock")
if err := os.MkdirAll(path.Dir(sp), 0o700); err != nil {
return err
}
if err := os.RemoveAll(sp); err != nil { if err := os.RemoveAll(sp); err != nil {
return err return err
...@@ -99,16 +80,20 @@ func NewCLI() *cobra.Command { ...@@ -99,16 +80,20 @@ func NewCLI() *cobra.Command {
PersistentPreRun: func(cmd *cobra.Command, args []string) { PersistentPreRun: func(cmd *cobra.Command, args []string) {
// Disable usage printing on errors // Disable usage printing on errors
cmd.SilenceUsage = true cmd.SilenceUsage = true
// create the models directory and it's parent
if err := os.MkdirAll(path.Join(cacheDir(), "models"), 0o700); err != nil {
panic(err)
}
}, },
} }
cobra.EnableCommandSorting = false cobra.EnableCommandSorting = false
runCmd := &cobra.Command{ runCmd := &cobra.Command{
Use: "run MODEL", Use: "run MODEL",
Short: "Run a model", Short: "Run a model",
Args: cobra.ExactArgs(1), Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command,args []string) error { RunE: func(cmd *cobra.Command, args []string) error {
return nil return nil
}, },
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment