Refactor metadata tool to support metadata generation for different rules.

Bug: 296873595
Test: Manual test (use go test inside tools/metadata/testdata)

Change-Id: I881fd76213ec78001f9e12ed2fbc860d1503a364
diff --git a/tools/metadata/testdata/metadata_test.go b/tools/metadata/testdata/metadata_test.go
index 0cb80c3..03c4f29 100644
--- a/tools/metadata/testdata/metadata_test.go
+++ b/tools/metadata/testdata/metadata_test.go
@@ -10,7 +10,7 @@
 
 func TestMetadata(t *testing.T) {
 	cmd := exec.Command(
-		"metadata", "-inputFile", "./inputFiles.txt", "-outputFile",
+		"metadata", "-rule", "test_spec", "-inputFile", "./inputFiles.txt", "-outputFile",
 		"./generatedOutputFile.txt",
 	)
 	stderr, err := cmd.CombinedOutput()
@@ -40,7 +40,7 @@
 
 func TestMetadataNegativeCase(t *testing.T) {
 	cmd := exec.Command(
-		"metadata", "-inputFile", "./inputFilesNegativeCase.txt", "-outputFile",
+		"metadata", "-rule", "test_spec", "-inputFile", "./inputFilesNegativeCase.txt", "-outputFile",
 		"./generatedOutputFileNegativeCase.txt",
 	)
 	stderr, err := cmd.CombinedOutput()