mirror of https://github.com/apache/kafka.git
				
				
				
			
		
			
	
	
		
			76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
|  | # | ||
|  | # Licensed to the Apache Software Foundation (ASF) under one or more | ||
|  | # contributor license agreements.  See the NOTICE file distributed with | ||
|  | # this work for additional information regarding copyright ownership. | ||
|  | # The ASF licenses this file to You under the Apache License, Version 2.0 | ||
|  | # (the "License"); you may not use this file except in compliance with | ||
|  | # the License.  You may obtain a copy of the License at | ||
|  | # | ||
|  | #    http://www.apache.org/licenses/LICENSE-2.0 | ||
|  | # | ||
|  | # Unless required by applicable law or agreed to in writing, software | ||
|  | # distributed under the License is distributed on an "AS IS" BASIS, | ||
|  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
|  | # See the License for the specific language governing permissions and | ||
|  | # limitations under the License. | ||
|  | # | ||
|  | 
 | ||
|  | """
 | ||
|  | Auxiliary functions to access and manipulate text files. | ||
|  | """
 | ||
|  | 
 | ||
|  | import re | ||
|  | 
 | ||
|  | from jproperties import Properties | ||
|  | 
 | ||
|  | 
 | ||
|  | def read(file_path): | ||
|  |     with open(file_path) as f: | ||
|  |         return f.read() | ||
|  | 
 | ||
|  | 
 | ||
|  | def write(file_path, content): | ||
|  |     with open(file_path, "w") as f: | ||
|  |         f.write(content) | ||
|  | 
 | ||
|  | 
 | ||
|  | def props(properties_text): | ||
|  |     """
 | ||
|  |     Load the keys and values into a dictionary from a .properties file. | ||
|  |     """
 | ||
|  |     props = Properties() | ||
|  |     props.load(properties_text, "utf-8") | ||
|  |     return props | ||
|  | 
 | ||
|  | 
 | ||
|  | def prop(filepath, propname): | ||
|  |     """
 | ||
|  |     Read the value for a given key in a .properties file. | ||
|  |     """
 | ||
|  |     values = props(read(filepath)) | ||
|  |     value, _ = values[propname] | ||
|  |     return value | ||
|  | 
 | ||
|  | 
 | ||
|  | def replace(path, pattern, replacement, **kwargs): | ||
|  |     """
 | ||
|  |     Replace all occurrences of a text pattern in a text file. | ||
|  |     """
 | ||
|  |     is_regex = kwargs.get("regex", False) | ||
|  |     updated = [] | ||
|  |     with open(path, "r") as f: | ||
|  |         for line in f: | ||
|  |             modified = line | ||
|  |             if is_regex: | ||
|  |                 modified = re.sub(pattern, replacement, line) | ||
|  |             elif line.startswith(pattern): | ||
|  |                 modified = replacement + "\n" | ||
|  | 
 | ||
|  |             updated.append(modified) | ||
|  | 
 | ||
|  |     with open(path, "w") as f: | ||
|  |         for line in updated: | ||
|  |             f.write(line) | ||
|  | 
 | ||
|  | 
 |