mirror of
				https://github.com/Xahau/xahaud.git
				synced 2025-11-04 02:35:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
set -eu
 | 
						|
 | 
						|
SCRIPT_DIR=$(dirname "$0")
 | 
						|
SCRIPT_DIR=$(cd "$SCRIPT_DIR" && pwd)
 | 
						|
 | 
						|
ENUM_FILE="$SCRIPT_DIR/../src/ripple/app/hook/Enum.h"
 | 
						|
 | 
						|
echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/'
 | 
						|
echo '// Generated using generate_error.sh'
 | 
						|
echo '#ifndef HOOK_ERROR_CODES'
 | 
						|
sed -n '/enum hook_return_code/,/};/p' "$ENUM_FILE" |
 | 
						|
    awk '
 | 
						|
        function ltrim(s) { sub(/^[[:space:]]+/, "", s); return s }
 | 
						|
        function rtrim(s) { sub(/[[:space:]]+$/, "", s); return s }
 | 
						|
        function trim(s) { return rtrim(ltrim(s)) }
 | 
						|
        function emit(entry) {
 | 
						|
            entry = trim(entry)
 | 
						|
            if (entry == "")
 | 
						|
                return
 | 
						|
            gsub(/,[[:space:]]*$/, "", entry)
 | 
						|
            split(entry, parts, "=")
 | 
						|
            if (length(parts) < 2)
 | 
						|
                return
 | 
						|
            name = trim(parts[1])
 | 
						|
            value = trim(parts[2])
 | 
						|
            if (name == "" || value == "")
 | 
						|
                return
 | 
						|
            printf "#define %s %s\n", name, value
 | 
						|
        }
 | 
						|
 | 
						|
        {
 | 
						|
            line = $0
 | 
						|
            if (line ~ /enum[[:space:]]+hook_return_code/)
 | 
						|
                next
 | 
						|
            if (line ~ /^[[:space:]]*\{/)
 | 
						|
                next
 | 
						|
 | 
						|
            sub(/\/\/.*$/, "", line)
 | 
						|
 | 
						|
            if (line ~ /^[[:space:]]*\};/) {
 | 
						|
                emit(buffer)
 | 
						|
                exit
 | 
						|
            }
 | 
						|
 | 
						|
            if (line ~ /^[[:space:]]*$/)
 | 
						|
                next
 | 
						|
 | 
						|
            buffer = buffer line " "
 | 
						|
 | 
						|
            if (line ~ /,[[:space:]]*$/) {
 | 
						|
                emit(buffer)
 | 
						|
                buffer = ""
 | 
						|
            }
 | 
						|
        }
 | 
						|
    '
 | 
						|
echo '#define HOOK_ERROR_CODES'
 | 
						|
echo '#endif //HOOK_ERROR_CODES'
 |