mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-03 20:12:25 -06:00 
			
		
		
		
	
		
			
	
	
		
			41 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| 
								 | 
							
								#!/bin/bash -e
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# This script rebuilds the generated code for the protocol buffers.
							 | 
						||
| 
								 | 
							
								# To run this you will need protoc and goprotobuf installed;
							 | 
						||
| 
								 | 
							
								# see https://github.com/golang/protobuf for instructions.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PKG=google.golang.org/appengine
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function die() {
							 | 
						||
| 
								 | 
							
									echo 1>&2 $*
							 | 
						||
| 
								 | 
							
									exit 1
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Sanity check that the right tools are accessible.
							 | 
						||
| 
								 | 
							
								for tool in go protoc protoc-gen-go; do
							 | 
						||
| 
								 | 
							
									q=$(which $tool) || die "didn't find $tool"
							 | 
						||
| 
								 | 
							
									echo 1>&2 "$tool: $q"
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								echo -n 1>&2 "finding package dir... "
							 | 
						||
| 
								 | 
							
								pkgdir=$(go list -f '{{.Dir}}' $PKG)
							 | 
						||
| 
								 | 
							
								echo 1>&2 $pkgdir
							 | 
						||
| 
								 | 
							
								base=$(echo $pkgdir | sed "s,/$PKG\$,,")
							 | 
						||
| 
								 | 
							
								echo 1>&2 "base: $base"
							 | 
						||
| 
								 | 
							
								cd $base
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Run protoc once per package.
							 | 
						||
| 
								 | 
							
								for dir in $(find $PKG/internal -name '*.proto' | xargs dirname | sort | uniq); do
							 | 
						||
| 
								 | 
							
									echo 1>&2 "* $dir"
							 | 
						||
| 
								 | 
							
									protoc --go_out=. $dir/*.proto
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								for f in $(find $PKG/internal -name '*.pb.go'); do
							 | 
						||
| 
								 | 
							
								  # Remove proto.RegisterEnum calls.
							 | 
						||
| 
								 | 
							
								  # These cause duplicate registration panics when these packages
							 | 
						||
| 
								 | 
							
								  # are used on classic App Engine. proto.RegisterEnum only affects
							 | 
						||
| 
								 | 
							
								  # parsing the text format; we don't care about that.
							 | 
						||
| 
								 | 
							
								  # https://code.google.com/p/googleappengine/issues/detail?id=11670#c17
							 | 
						||
| 
								 | 
							
								  sed -i '/proto.RegisterEnum/d' $f
							 | 
						||
| 
								 | 
							
								done
							 |