27 lines
667 B
Bash
27 lines
667 B
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# https://gist.github.com/maxpoletaev/4ed25183427a2cd7e57a
|
||
|
|
|
||
|
|
case "$OSTYPE" in
|
||
|
|
darwin*) PLATFORM="OSX" ;;
|
||
|
|
linux*) PLATFORM="LINUX" ;;
|
||
|
|
bsd*) PLATFORM="BSD" ;;
|
||
|
|
*) PLATFORM="UNKNOWN" ;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
replace() {
|
||
|
|
if [[ "$PLATFORM" == "OSX" || "$PLATFORM" == "BSD" ]]; then
|
||
|
|
sed -i "" "$1" "$2"
|
||
|
|
elif [ "$PLATFORM" == "LINUX" ]; then
|
||
|
|
sed -i "$1" "$2"
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
if grep -q $1 $3; then
|
||
|
|
# file contains string, lets replace it
|
||
|
|
# https://stackoverflow.com/a/42667816 - why we need the -i ''
|
||
|
|
replace "s~$1=.*~$1=$2~g" $3
|
||
|
|
else
|
||
|
|
# file doesn't contain string, lets append it
|
||
|
|
echo "$1=$2" >> $3
|
||
|
|
fi
|