mirror of
				https://github.com/Mbed-TLS/mbedtls.git
				synced 2025-11-03 20:33:16 +03: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;
 | 
						|
}
 |