Scripts and main daemon

This includes the scripts for the YAML parsing and the
main execution point.

Change-Id: If42154c621353b23370b63d4e58f6c75bca8b356
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/scripts/sensor-example.txt b/scripts/sensor-example.txt
new file mode 100644
index 0000000..0915163
--- /dev/null
+++ b/scripts/sensor-example.txt
@@ -0,0 +1,29 @@
+fan2: /* Name of the sensor. */
+  type: fan /* Type of sensor, fan, temp, margin */
+  /* How the sensor can be read[1] */
+  readpath: /xyz/openbmc_project/sensors/fan_tach/fan2
+  /* How the sensor can be set[2] */
+  writepath: /sys/class/hwmon/hwmon0/pwm1
+  /* The minimum value used for scaling writes (int64) */
+  min: 0
+  /* The maximum value used for scaling writes (int64) */
+  max: 255
+  /* The timeout value for the sensor, used for failsafe, 0 means no timeout
+   * (int64)
+   */
+  timeout: 0
+
+[1] readpath has multiple options:
+* If it has "/xyz/openbmc_project/extsensors/" in it, it's an EXTERNAL or
+  host-provided sensor.
+* If it has "/xyz/openbmc_project/" in it, it's a sensor whose value is
+  received passively over dbus.
+* If it has "/sys/" in it, it's a sensor read directly from sysfs.
+
+[2]
+* This can be left blank if the sensor is read-only.
+* If it has "/sys/" in it, it's a sensor written to sysfs.
+  * If min and max are non-zero, it'll convert the value to within the range.
+    and output that modified value.  So, if it receives a value of .90 and min
+    is 0, and max is 255, it'll convert that to a value of 229.5 that is then
+    cast to int64_t.