Shared_Processors/FileAppender.py (24 lines of code) (raw):

#!/usr/bin/python # -*- coding: utf-8 -*- # # Copyright (c) Facebook, Inc. and its affiliates. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree.# """Processor that creates a file.""" from __future__ import absolute_import from autopkglib import Processor, ProcessorError __all__ = ["FileAppender"] class FileAppender(Processor): """Append contents to the end of a file.""" description = __doc__ input_variables = { "file_path": {"required": True, "description": "Path to a file to append to."}, "file_content": {"required": True, "description": "Contents to add to a file."}, } output_variables = {} def main(self): try: with open(self.env["file_path"], "a") as fileref: fileref.write(self.env["file_content"]) self.output("Appened to file at %s" % self.env["file_path"]) except BaseException as err: raise ProcessorError( "Can't append to file at %s: %s" % (self.env["file_path"], err) ) # clean the variable up afterwards to not poison future runs self.env["file_content"] = "" self.env["file_path"] = "" if __name__ == "__main__": PROCESSOR = FileAppender() PROCESSOR.execute_shell()