121 lines
4.2 KiB
Markdown
121 lines
4.2 KiB
Markdown
|
|
SPDX-License-Identifier: CC-BY-4.0
|
||
|
|
|
||
|
|
# tools-golang Examples
|
||
|
|
|
||
|
|
The `examples/` directory contains examples for how to use the various
|
||
|
|
tools-golang sub-packages. Sample commands below should be run from
|
||
|
|
within the example's subdirectory.
|
||
|
|
|
||
|
|
## 1-load/
|
||
|
|
|
||
|
|
*tvloader*, *spdx*
|
||
|
|
|
||
|
|
This example demonstrates loading an SPDX tag-value file from disk into memory,
|
||
|
|
and printing some of its contents to standard output.
|
||
|
|
#### Run project: *go run example_load.go ../sample-docs/tv/hello.spdx*
|
||
|
|
|
||
|
|
## 2-load-save/
|
||
|
|
|
||
|
|
*tvloader*, *tvsaver*
|
||
|
|
|
||
|
|
This example demonstrates loading an SPDX tag-value file from disk into memory,
|
||
|
|
and re-saving it to a different file on disk.
|
||
|
|
#### Run project: *go run example_load_save.go ../sample-docs/tv/hello.spdx test.spdx*
|
||
|
|
|
||
|
|
## 3-build/
|
||
|
|
|
||
|
|
*builder*, *tvsaver*
|
||
|
|
|
||
|
|
This example demonstrates building an 'empty' SPDX document in memory that
|
||
|
|
corresponds to a given directory's contents, including all files with their
|
||
|
|
hashes and the package's verification code, and saving the document to disk.
|
||
|
|
#### Run project: *go run example_build.go project2 ../../testdata/project2 test.spdx*
|
||
|
|
|
||
|
|
## 4-search/
|
||
|
|
|
||
|
|
*idsearcher*, *tvsaver*
|
||
|
|
|
||
|
|
This example demonstrates building an SPDX document for a directory's contents
|
||
|
|
(implicitly using *builder*); searching through that directory for [SPDX
|
||
|
|
short-form IDs](https://spdx.org/ids/); filling those IDs into the document's
|
||
|
|
Package and File license fields; and saving the resulting document to disk.
|
||
|
|
#### Run project: *go run example_search.go project2 ../../testdata/project2/folder test.spdx*
|
||
|
|
|
||
|
|
## 5-report/
|
||
|
|
|
||
|
|
*reporter*, *tvloader*
|
||
|
|
|
||
|
|
This example demonstrates loading an SPDX tag-value file from disk into memory,
|
||
|
|
generating a basic report listing counts of the concluded licenses for its
|
||
|
|
files, and printing the report to standard output.
|
||
|
|
#### Run project: *go run example_report.go ../sample-docs/tv/hello.spdx*
|
||
|
|
|
||
|
|
## 6-licensediff
|
||
|
|
|
||
|
|
*licensediff*, *tvloader*
|
||
|
|
|
||
|
|
This example demonstrates loading two SPDX tag-value files from disk into
|
||
|
|
memory, and generating a diff of the concluded licenses for Files in Packages
|
||
|
|
with matching IDs in each document.
|
||
|
|
|
||
|
|
This is generally only useful when run with two SPDX documents that describe
|
||
|
|
licenses for subsequent versions of the same set of files, AND if they have
|
||
|
|
the same identifier in both documents.
|
||
|
|
#### Run project: *go run example_licensediff.go ../sample-docs/tv/hello.spdx ../sample-docs/tv/hello-modified.spdx*
|
||
|
|
|
||
|
|
## 7-rdfloader
|
||
|
|
|
||
|
|
*rdfloader*, *spdx*
|
||
|
|
|
||
|
|
This example demonstrates loading an SPDX rdf file from disk into memory
|
||
|
|
and then printing the corresponding spdx struct for the document.
|
||
|
|
#### Run project: *go run exampleRDFLoader.go ../sample-docs/rdf/SPDXRdfExample-v2.2.spdx.rdf*
|
||
|
|
|
||
|
|
## 8-jsontotv
|
||
|
|
|
||
|
|
*json*, *tvsaver*
|
||
|
|
|
||
|
|
This example demonstrates loading an SPDX json from disk into memory
|
||
|
|
and then re-saving it to a different file on disk in tag-value format.
|
||
|
|
#### Run project: *go run examplejsontotv.go ../sample-docs/json/SPDXJSONExample-v2.2.spdx.json example.spdx*
|
||
|
|
|
||
|
|
## 9-tvtojson
|
||
|
|
|
||
|
|
*json*, *tvloader*
|
||
|
|
|
||
|
|
This example demonstrates loading an SPDX tag-value from disk into memory
|
||
|
|
and then re-saving it to a different file on disk in json format.
|
||
|
|
#### Run project: *go run exampletvtojson.go ../sample-docs/tv/hello.spdx example.json*
|
||
|
|
|
||
|
|
## 10-jsonloader
|
||
|
|
|
||
|
|
*json*
|
||
|
|
|
||
|
|
This example demonstrates loading an SPDX json from disk into memory
|
||
|
|
and then logging some of the attributes to the console.
|
||
|
|
#### Run project: *go run example_json_loader.go ../sample-docs/json/SPDXJSONExample-v2.2.spdx.json*
|
||
|
|
|
||
|
|
## 11-yamltotv
|
||
|
|
|
||
|
|
*yaml* *tvsaver*
|
||
|
|
|
||
|
|
This example demonstrates loading an SPDX yaml from disk into memory
|
||
|
|
and then re-saving it to a different file on disk in tag-value format.
|
||
|
|
#### Run project: *go run exampleyamltotv.go ../sample-docs/yaml/SPDXYAMLExample-2.2.spdx.yaml test.spdx*
|
||
|
|
|
||
|
|
## 12-tvtoyaml
|
||
|
|
|
||
|
|
*yaml* *tvloader*
|
||
|
|
|
||
|
|
This example demonstrates loading an SPDX tag-value from disk into memory
|
||
|
|
and then re-saving it to a different file on disk in yaml format.
|
||
|
|
#### Run project: *go run exampletvtoyaml.go ../sample-docs/tv/hello.spdx example.yaml*
|
||
|
|
|
||
|
|
## 13-yamlloader
|
||
|
|
|
||
|
|
*yaml*
|
||
|
|
|
||
|
|
This example demonstrates loading an SPDX yaml from disk into memory
|
||
|
|
and then logging some of the attributes to the console.
|
||
|
|
#### Run project: *go run exampleYAMLLoader.go ../sample-docs/yaml/SPDXYAMLExample-2.2.spdx.yaml*
|