package org.ovirt.engine.core.utils.osinfo;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class OsinfoPropertiesParser {
/**
* Parse the properties file using the class auto-generated by javacc from the osinfo.jj file.
* Parsing the file throws an exception in case the file structure doesn't follow the grammar.
*/
public static void parse(String path) {
try (FileInputStream inputStream = new FileInputStream(path)) {
OsInfoParser parser = new OsInfoParser(inputStream);
parser.parse();
} catch (FileNotFoundException e) {
throw new RuntimeException(
String.format("osinfo properties file cannot be found: %s", path),
e
);
} catch (IOException e) {
throw new RuntimeException(
String.format("error while reading osinfo properties file: %s", path),
e
);
} catch (ParseException e) {
throw new RuntimeException(
String.format(
"osinfo properties syntax error: %s: %d, %d: error: %s",
path,
e.currentToken.beginLine,
e.currentToken.beginColumn,
e.getMessage()
),
e
);
}
}
}