27 lines
741 B
Bash
Executable File
27 lines
741 B
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# size.sh is used to bisect the repository and find changes that negatively
|
|
# impacted the gotop binary size. It does this by building gotop and exiting
|
|
# successfully if the binary size is under a defined amount.
|
|
#
|
|
# Example:
|
|
# ```
|
|
# git bisect start
|
|
# git bisect bad master
|
|
# git bisect good 755037d211cc8e58e9ce43ee74a95a3036053dee
|
|
# git bisect run ./size
|
|
# ```
|
|
|
|
GOODSIZE=6000000
|
|
|
|
# Caleb's directory structure was different from the current structure, so
|
|
# we have to find the main package first.
|
|
pt=$(dirname $(find . -name main.go))
|
|
# Give the executable a unique-ish name
|
|
fn=gotop_$(git rev-list -1 HEAD)
|
|
go build -o $fn $pt
|
|
sz=$(ls -l $fn | awk '{print $5}')
|
|
git checkout -- .
|
|
[[ $sz -gt $GOODSIZE ]] && exit 1
|
|
exit 0
|