Browse Source

add license layers to the parser (#116)

Patrick Devine 1 year ago
parent
commit
572fc9099f
2 changed files with 12 additions and 2 deletions
  1. 2 2
      parser/parser.go
  2. 10 0
      server/images.go

+ 2 - 2
parser/parser.go

@@ -46,8 +46,8 @@ func Parse(reader io.Reader) ([]Command, error) {
 				return nil, fmt.Errorf("no model specified in FROM line")
 			}
 			foundModel = true
-		case "PROMPT":
-			command.Name = "prompt"
+		case "PROMPT", "LICENSE":
+			command.Name = strings.ToLower(fields[0])
 			if fields[1] == `"""` {
 				multiline = true
 				multilineCommand = &command

+ 10 - 0
server/images.go

@@ -215,6 +215,16 @@ func CreateModel(name string, mf io.Reader, fn func(status string)) error {
 			}
 			l.MediaType = "application/vnd.ollama.image.prompt"
 			layers = append(layers, l)
+		case "license":
+			fn("creating license layer")
+			license := strings.NewReader(c.Arg)
+			l, err := CreateLayer(license)
+			if err != nil {
+				fn(fmt.Sprintf("couldn't create license layer: %v", err))
+				return fmt.Errorf("failed to create layer: %v", err)
+			}
+			l.MediaType = "application/vnd.ollama.image.license"
+			layers = append(layers, l)
 		default:
 			params[c.Name] = c.Arg
 		}