show system/template/license layers from cmd prompt (#223)
This commit is contained in:
parent
5685c16d4e
commit
01d155c969
1 changed files with 64 additions and 0 deletions
64
cmd/cmd.go
64
cmd/cmd.go
|
@ -302,6 +302,16 @@ func generate(cmd *cobra.Command, model, prompt string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func showLayer(l *server.Layer) {
|
||||||
|
filename, err := server.GetBlobsPath(l.Digest)
|
||||||
|
bts, err := os.ReadFile(filename)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("Couldn't read layer")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Printf(string(bts) + "\n")
|
||||||
|
}
|
||||||
|
|
||||||
func generateInteractive(cmd *cobra.Command, model string) error {
|
func generateInteractive(cmd *cobra.Command, model string) error {
|
||||||
home, err := os.UserHomeDir()
|
home, err := os.UserHomeDir()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -322,6 +332,11 @@ func generateInteractive(cmd *cobra.Command, model string) error {
|
||||||
readline.PcItem("default"),
|
readline.PcItem("default"),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
readline.PcItem("/show",
|
||||||
|
readline.PcItem("license"),
|
||||||
|
readline.PcItem("system"),
|
||||||
|
readline.PcItem("template"),
|
||||||
|
),
|
||||||
readline.PcItem("/exit"),
|
readline.PcItem("/exit"),
|
||||||
readline.PcItem("/bye"),
|
readline.PcItem("/bye"),
|
||||||
)
|
)
|
||||||
|
@ -393,9 +408,58 @@ func generateInteractive(cmd *cobra.Command, model string) error {
|
||||||
case "emacs", "default":
|
case "emacs", "default":
|
||||||
scanner.SetVimMode(false)
|
scanner.SetVimMode(false)
|
||||||
continue
|
continue
|
||||||
|
default:
|
||||||
|
usage()
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
usage()
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
usage()
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
case strings.HasPrefix(line, "/show"):
|
||||||
|
args := strings.Fields(line)
|
||||||
|
if len(args) > 1 {
|
||||||
|
mp := server.ParseModelPath(model)
|
||||||
|
manifest, err := server.GetManifest(mp)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("error: couldn't get a manifestfor this model")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
switch args[1] {
|
||||||
|
case "license":
|
||||||
|
for _, l := range manifest.Layers {
|
||||||
|
if l.MediaType == "application/vnd.ollama.image.license" {
|
||||||
|
showLayer(l)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
case "system":
|
||||||
|
for _, l := range manifest.Layers {
|
||||||
|
if l.MediaType == "application/vnd.ollama.image.system" {
|
||||||
|
showLayer(l)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
case "template":
|
||||||
|
for _, l := range manifest.Layers {
|
||||||
|
if l.MediaType == "application/vnd.ollama.image.template" {
|
||||||
|
showLayer(l)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
default:
|
||||||
|
usage()
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
usage()
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
case line == "/help", line == "/?":
|
case line == "/help", line == "/?":
|
||||||
usage()
|
usage()
|
||||||
|
|
Loading…
Reference in a new issue