| 
									
										
										
										
											2025-05-27 00:09:55 -04:00
										 |  |  | #!/usr/bin/env nix | 
					
						
							|  |  |  | #! nix shell nixpkgs#python3  --command python | 
					
						
							|  |  |  | import logging | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def inject_diff(): | 
					
						
							|  |  |  |     source_file = 'post-diff' | 
					
						
							|  |  |  |     target_file = 'pr_body.md' | 
					
						
							|  |  |  |     placeholder = "nix-diff-placeholder" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     logging.info(f"injecting '{source_file}' into '{target_file}' using '{placeholder}' as a placeholder") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     out = [] | 
					
						
							|  |  |  |     with open(source_file,'r') as src: | 
					
						
							|  |  |  |         src_content = src.read() | 
					
						
							| 
									
										
										
										
											2025-05-27 10:57:12 -04:00
										 |  |  |         if len(src_content) > 60000: | 
					
						
							|  |  |  |             logging.warning(f"{source_file} is longer than 60k characters, truncating") | 
					
						
							|  |  |  |             src_content = src_content[:60000] | 
					
						
							| 
									
										
										
										
											2025-05-27 00:09:55 -04:00
										 |  |  |     with open(target_file,'r') as tgt: | 
					
						
							|  |  |  |         for line in tgt.readlines(): | 
					
						
							|  |  |  |             if placeholder in line: | 
					
						
							|  |  |  |                 out.append(line.replace(placeholder,src_content)) | 
					
						
							|  |  |  |             else: | 
					
						
							|  |  |  |                 out.append(line) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     with open(target_file,'w') as tgt: | 
					
						
							|  |  |  |         tgt.writelines(out) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     logging.basicConfig( level=logging.INFO) | 
					
						
							|  |  |  |     inject_diff() |