1*ba677afaSXin Li// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2*ba677afaSXin Li 3*ba677afaSXin Lipackage builder2v3 4*ba677afaSXin Li 5*ba677afaSXin Liimport ( 6*ba677afaSXin Li "time" 7*ba677afaSXin Li 8*ba677afaSXin Li "github.com/spdx/tools-golang/spdx/common" 9*ba677afaSXin Li "github.com/spdx/tools-golang/spdx/v2_3" 10*ba677afaSXin Li) 11*ba677afaSXin Li 12*ba677afaSXin Li// BuildCreationInfoSection2_3 creates an SPDX Package (version 2.3), returning that 13*ba677afaSXin Li// package or error if any is encountered. Arguments: 14*ba677afaSXin Li// - packageName: name of package / directory 15*ba677afaSXin Li// - code: verification code from Package 16*ba677afaSXin Li// - namespacePrefix: prefix for DocumentNamespace (packageName and code will be added) 17*ba677afaSXin Li// - creatorType: one of Person, Organization or Tool 18*ba677afaSXin Li// - creator: creator string 19*ba677afaSXin Li// - testValues: for testing only; call with nil when using in production 20*ba677afaSXin Lifunc BuildCreationInfoSection2_3(creatorType string, creator string, testValues map[string]string) (*v2_3.CreationInfo, error) { 21*ba677afaSXin Li // build creator slices 22*ba677afaSXin Li creators := []common.Creator{ 23*ba677afaSXin Li // add builder as a tool 24*ba677afaSXin Li { 25*ba677afaSXin Li Creator: "github.com/spdx/tools-golang/builder", 26*ba677afaSXin Li CreatorType: "Tool", 27*ba677afaSXin Li }, 28*ba677afaSXin Li { 29*ba677afaSXin Li Creator: creator, 30*ba677afaSXin Li CreatorType: creatorType, 31*ba677afaSXin Li }, 32*ba677afaSXin Li } 33*ba677afaSXin Li 34*ba677afaSXin Li // use test Created time if passing test values 35*ba677afaSXin Li location, _ := time.LoadLocation("UTC") 36*ba677afaSXin Li locationTime := time.Now().In(location) 37*ba677afaSXin Li created := locationTime.Format("2006-01-02T15:04:05Z") 38*ba677afaSXin Li if testVal := testValues["Created"]; testVal != "" { 39*ba677afaSXin Li created = testVal 40*ba677afaSXin Li } 41*ba677afaSXin Li 42*ba677afaSXin Li ci := &v2_3.CreationInfo{ 43*ba677afaSXin Li Creators: creators, 44*ba677afaSXin Li Created: created, 45*ba677afaSXin Li } 46*ba677afaSXin Li return ci, nil 47*ba677afaSXin Li} 48