Skip to content

Commit 5bd4d2f

Browse files
committed
feat: cleanup and tests
1 parent 7d1d1d2 commit 5bd4d2f

File tree

9 files changed

+1402
-25
lines changed

9 files changed

+1402
-25
lines changed

nix/checks.nix

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,22 @@
406406
touch $out
407407
'';
408408

409+
sbom-tests = pkgs.stdenv.mkDerivation {
410+
name = "sbom-tests";
411+
src = ./packages/sbom;
412+
nativeBuildInputs = [ pkgs.go ];
413+
buildPhase = ''
414+
export HOME=$TMPDIR
415+
export GOCACHE=$TMPDIR/go-cache
416+
export GOMODCACHE=$TMPDIR/go-mod-cache
417+
go test ./... -v
418+
'';
419+
installPhase = ''
420+
echo "SUCCESS: sbom tests passed"
421+
touch $out
422+
'';
423+
};
424+
409425
sbomnix-available =
410426
let
411427
sbomnixPkg = self'.packages.sbomnix;

nix/packages/sbom/internal/merge/merger.go

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,18 @@ func (m *Merger) Merge(ubuntuPath, nixPath string) (*spdx.Document, error) {
3030
return nil, fmt.Errorf("failed to load Nix SBOM: %w", err)
3131
}
3232

33+
uuid, err := spdx.GenerateUUID()
34+
if err != nil {
35+
return nil, fmt.Errorf("failed to generate UUID: %w", err)
36+
}
37+
3338
// Create merged document
3439
mergedDoc := &spdx.Document{
3540
SPDXVersion: "SPDX-2.3",
3641
DataLicense: "CC0-1.0",
3742
SPDXID: "SPDXRef-DOCUMENT",
3843
Name: fmt.Sprintf("Ubuntu-Nix-System-SBOM-%s", time.Now().Format("2006-01-02")),
39-
DocumentNamespace: fmt.Sprintf("https://sbom.ubuntu-nix.system/%s", generateUUID()),
44+
DocumentNamespace: fmt.Sprintf("https://sbom.ubuntu-nix.system/%s", uuid),
4045
CreationInfo: spdx.CreationInfo{
4146
Created: time.Now().UTC().Format(time.RFC3339),
4247
Creators: m.mergeCreators(ubuntuDoc, nixDoc),
@@ -307,14 +312,3 @@ func sanitizeCPEComponent(component string) string {
307312

308313
return component
309314
}
310-
311-
func generateUUID() string {
312-
// Simple UUID v4 generation
313-
b := make([]byte, 16)
314-
for i := range b {
315-
b[i] = byte(time.Now().UnixNano() & 0xff)
316-
}
317-
318-
return fmt.Sprintf("%x-%x-%x-%x-%x",
319-
b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
320-
}

0 commit comments

Comments
 (0)