package com.buglabs.bug.base;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.osgi.framework.BundleContext;
import org.osgi.service.log.LogService;
import com.buglabs.support.SupportInfo;
/**
* Bug's version of SupportInfo
*
* @author bballantine
*
*/
public class BUGSupportInfo extends SupportInfo {
public BUGSupportInfo(BundleContext context) {
super(context);
}
/**
* Get the kernel version from /etc/version
*/
protected String getKernelVersion() {
BufferedReader br = getBufferedReader("/etc/version");
if (br == null) return "";
// kernel version is first line
String line = null;
try {
line = br.readLine();
br.close();
} catch (IOException e) {
getLogService().log(
LogService.LOG_ERROR, "Error reading /etc/version", e);
}
if (line == null) return null;
else return line.trim();
}
/**
* Get the rootfs version info from /etc/buildinfo
*/
protected String getRootfsVersion() {
BufferedReader br = getBufferedReader("/etc/buildinfo");
if (br == null) return "";
StringBuffer sb = new StringBuffer();
try {
String line;
while ((line = br.readLine()) != null) {
sb.append(line.trim());
sb.append("\n");
}
br.close();
} catch (IOException e) {
getLogService().log(
LogService.LOG_ERROR, "Error reading /etc/buildinfo", e);
}
return sb.toString();
}
/**
* Helper to get a buffered reader to a file
*
* @param filename
* @return
*/
private BufferedReader getBufferedReader(String filename) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(filename));
} catch (FileNotFoundException e) {
getLogService().log(LogService.LOG_ERROR, filename + " not found", e);
}
return br;
}
}