1// Package tvloader is used to load and parse SPDX tag-value documents 2// into tools-golang data structures. 3// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 4package tvloader 5 6import ( 7 "github.com/spdx/tools-golang/spdx/v2_3" 8 "github.com/spdx/tools-golang/tvloader/parser2v3" 9 "io" 10 11 "github.com/spdx/tools-golang/spdx/v2_1" 12 "github.com/spdx/tools-golang/spdx/v2_2" 13 "github.com/spdx/tools-golang/tvloader/parser2v1" 14 "github.com/spdx/tools-golang/tvloader/parser2v2" 15 "github.com/spdx/tools-golang/tvloader/reader" 16) 17 18// Load2_1 takes an io.Reader and returns a fully-parsed SPDX Document 19// (version 2.1) if parseable, or error if any error is encountered. 20func Load2_1(content io.Reader) (*v2_1.Document, error) { 21 tvPairs, err := reader.ReadTagValues(content) 22 if err != nil { 23 return nil, err 24 } 25 26 doc, err := parser2v1.ParseTagValues(tvPairs) 27 if err != nil { 28 return nil, err 29 } 30 31 return doc, nil 32} 33 34// Load2_2 takes an io.Reader and returns a fully-parsed SPDX Document 35// (version 2.2) if parseable, or error if any error is encountered. 36func Load2_2(content io.Reader) (*v2_2.Document, error) { 37 tvPairs, err := reader.ReadTagValues(content) 38 if err != nil { 39 return nil, err 40 } 41 42 doc, err := parser2v2.ParseTagValues(tvPairs) 43 if err != nil { 44 return nil, err 45 } 46 47 return doc, nil 48} 49 50// Load2_3 takes an io.Reader and returns a fully-parsed SPDX Document 51// (version 2.2) if parseable, or error if any error is encountered. 52func Load2_3(content io.Reader) (*v2_3.Document, error) { 53 tvPairs, err := reader.ReadTagValues(content) 54 if err != nil { 55 return nil, err 56 } 57 58 doc, err := parser2v3.ParseTagValues(tvPairs) 59 if err != nil { 60 return nil, err 61 } 62 63 return doc, nil 64} 65