| #!/bin/sh |
| # Copyright 2009 The Go Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style |
| # license that can be found in the LICENSE file. |
| |
| # Generate Go code listing error values (ENAMETOOLONG etc) |
| # for Native Client. |
| |
| echo '// mkerrors_nacl.sh' "$@" |
| echo '// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT' |
| echo |
| echo 'package syscall' |
| echo |
| echo 'const (' |
| perl -n -e ' |
| if(/#define\s+NACL_ABI_(\S*)\s+([0-9]+)/) { |
| print "\t$1 = $2;\n" |
| } |
| ' $1 |
| echo ' ENACL = 99; /* otherwise unused */' |
| echo ')' |
| echo |
| echo |
| echo '// Error table' |
| echo 'var errors = [...]string {' |
| perl -n -e ' |
| if(/#define\s+NACL_ABI_(\S*)\s+([0-9]+)\s+\/\* (.*) \*\//) { |
| $err = $1; |
| $text = $3; |
| if($text =~ /^[A-Z][a-z]/) { |
| # lowercase first letter: Bad -> bad, but STREAM -> STREAM. |
| $l = substr($text, 0, 1); |
| $rest = substr($text, 1); |
| $l =~ y/A-Z/a-z/; |
| $text = $l . $rest; |
| } |
| print "\t$err: \"$text\",\n"; |
| } |
| ' $1 |
| echo ' ENACL: "not supported by native client",' |
| echo '}' |