mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-10-31 03:30:35 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl
 | |
| 
 | |
| # activate a pre-defined configuration
 | |
| 
 | |
| use warnings;
 | |
| use strict;
 | |
| 
 | |
| my $config_h = "../include/polarssl/config.h";
 | |
| 
 | |
| exit( main() );
 | |
| 
 | |
| sub read_default {
 | |
|     open my $fh, '<', $config_h or die "Failed to read $config_h: $!\n";
 | |
| 
 | |
|     my (@pre, @post);
 | |
|     my $state = 'pre';
 | |
| 
 | |
|     while( my $line = <$fh> ) {
 | |
|         if( $state eq 'pre' ) {
 | |
|             push @pre, $line;
 | |
|             $state = 'skip' if $line =~ /} name SECTION: System support/;
 | |
|         }
 | |
|         elsif( $state eq 'skip' ) {
 | |
|             $state = 'post' if $line =~/} name SECTION: PolarSSL modules/;
 | |
|         }
 | |
|         else {
 | |
|             push @post, $line;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     die "Failed to parse $config_h\n" if( $state ne 'post' );
 | |
| 
 | |
|     close $fh;
 | |
| 
 | |
|     push @pre, "\n";
 | |
| 
 | |
|     return \@pre, \@post;
 | |
| }
 | |
| 
 | |
| sub read_custom {
 | |
|     my ($file_name) = @_;
 | |
| 
 | |
|     open my $fh, '<', $file_name or die "Failed to read $file_name: $!\n";
 | |
|     my @content = <$fh>;
 | |
|     close $fh;
 | |
| 
 | |
|     return \@content;
 | |
| }
 | |
| 
 | |
| sub write_custom {
 | |
|     my ($pre, $mid, $post) = @_;
 | |
| 
 | |
|     open my $fh, '>', $config_h or die "Failed to write $config_h: $!\n";
 | |
|     print $fh @$pre;
 | |
|     print $fh @$mid;
 | |
|     print $fh @$post;
 | |
|     close $fh;
 | |
| }
 | |
| 
 | |
| sub main {
 | |
|     my $custom_file_name = $ARGV[0];
 | |
| 
 | |
|     my ($pre, $post) = read_default();
 | |
|     my $mine = read_custom( $custom_file_name );
 | |
|     write_custom( $pre, $mine, $post );
 | |
| 
 | |
|     return 0;
 | |
| }
 | 
