Adding feature file generation via Bazel

Change-Id: Ifa9cdf01c3129e5cd6cb7b8f4aee956eef9055f8
diff --git a/tools/build/bazel/onos_app.py b/tools/build/bazel/onos_app.py
index bbb053c..ebb6bb7 100755
--- a/tools/build/bazel/onos_app.py
+++ b/tools/build/bazel/onos_app.py
@@ -134,11 +134,18 @@
     output += APP_FOOTER
     return output
 
+def write(name, msg):
+    if name is not None:
+        with open(name, "w") as file:
+            file.write(msg)
+    else:
+        print msg
 
 if __name__ == '__main__':
     import sys, optparse
 
     parser = optparse.OptionParser()
+    parser.add_option("-O", "--output",   dest="output",       help="Output file")
     parser.add_option("-n", "--name",     dest="feature_coords", help="Feature MVN Coords")
     parser.add_option("-a", "--app",      dest="app_name",     help="App Name")
     parser.add_option("-o", "--origin",   dest="origin",       help="Origin")
@@ -206,14 +213,15 @@
                               **values)
 
     if options.write_feature:
-        print feature
+        write(options.output, feature)
 
     if options.write_features:
-        print generateFeatureFile(features=[ feature ],
-                                  **values)
+        write(options.output,
+              generateFeatureFile(features=[ feature ], **values))
 
     if options.write_app:
-        print generateAppFile(artifacts=options.included_bundles,
+        write(options.output,
+              generateAppFile(artifacts=options.included_bundles,
                               apps=options.apps,
                               security=options.security,
-                              **values)
\ No newline at end of file
+                              **values))
\ No newline at end of file