41 lines
		
	
	
		
			741 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			741 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # set -x
 | |
| 
 | |
| function build_binary {
 | |
|     echo building $1
 | |
|     pushd $1
 | |
|     go build -o _main
 | |
|     local ret=$?
 | |
|     if [ $ret -gt 0 ]; then 
 | |
|         failed=1
 | |
|         failed_arr+=($1)
 | |
|     fi
 | |
|     popd
 | |
| }
 | |
| 
 | |
| function is_main {
 | |
|     grep "package main" -l -dskip $1/*.go > /dev/null 2>&1
 | |
| }
 | |
| 
 | |
| 
 | |
| function check_dir {
 | |
|     is_main $1
 | |
|     local ret=$?
 | |
|     if [ $ret == 0 ]; then
 | |
|         build_binary $1 $2
 | |
|     fi
 | |
|     for filename in $1/*; do
 | |
|         if [ -d $filename ]; then
 | |
|             check_dir $filename $2
 | |
|         fi
 | |
|     done
 | |
| }
 | |
| failed_arr=()
 | |
| failed=0
 | |
| go mod edit -replace github.com/micro/go-micro/v2=github.com/$2/v2@$1 
 | |
| check_dir . $1
 | |
| if [ $failed -gt 0 ]; then
 | |
|     echo Some builds failed
 | |
|     printf '%s\n' "${failed_arr[@]}"
 | |
| fi
 | |
| exit $failed |