WIP matterbridge - steps to build matterbridge from source incl. installing go
This commit is contained in:
@@ -33,6 +33,9 @@ SyslogIdentifier=${toolName}
|
|||||||
WantedBy=multi-user.target"
|
WantedBy=multi-user.target"
|
||||||
toolServiceLoc="/etc/systemd/system/${toolName}.service"
|
toolServiceLoc="/etc/systemd/system/${toolName}.service"
|
||||||
|
|
||||||
|
readonly goDir="/usr/local/go"
|
||||||
|
readonly goDownLoc="/tmp/go.tar.gz"
|
||||||
|
|
||||||
step_config() {
|
step_config() {
|
||||||
if [ -z $toolVersion ] ; then
|
if [ -z $toolVersion ] ; then
|
||||||
echoerr " [E] Couldn't determine latest version of $toolName"
|
echoerr " [E] Couldn't determine latest version of $toolName"
|
||||||
@@ -83,21 +86,9 @@ https://raw.githubusercontent.com/${repoName}/${toolName}/v${toolVersion}/matter
|
|||||||
NOTES_END
|
NOTES_END
|
||||||
}
|
}
|
||||||
|
|
||||||
step_12_info() {
|
step_10_info() { echo "Backup existing executable"; }
|
||||||
if [ ! -z $versionNow ] ; then
|
step_10_alias() { ALIAS="backup"; }
|
||||||
if [ "$toolVersion" == "$versionNow" ] ; then
|
step_10() {
|
||||||
echo "No upgrade available. Already on latest: $versionNow"
|
|
||||||
else
|
|
||||||
echo "Download new version $toolVersion to /usr/local/bin"
|
|
||||||
echoinfo " - installed version: $versionNow -"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Download new version $toolVersion to /usr/local/bin"
|
|
||||||
fi
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
step_12_alias() { ALIAS="upgrade"; }
|
|
||||||
step_12() {
|
|
||||||
if [ -f "$toolLoc" ] ; then
|
if [ -f "$toolLoc" ] ; then
|
||||||
local toolBackup=
|
local toolBackup=
|
||||||
if [ ! -z ${versionNow} ] ; then
|
if [ ! -z ${versionNow} ] ; then
|
||||||
@@ -106,18 +97,37 @@ step_12() {
|
|||||||
toolBackup="${toolDir}/${toolName}_bu"
|
toolBackup="${toolDir}/${toolName}_bu"
|
||||||
fi
|
fi
|
||||||
exe service ${toolName} stop >>/dev/null 2>&1
|
exe service ${toolName} stop >>/dev/null 2>&1
|
||||||
echo -n " [I] Backing up existing executable to ${toolBackup}..."
|
echoseq -n " [I] Backing up existing executable to ${toolBackup}..."
|
||||||
exe cp -ar "$toolLoc" "$toolBackup" && echo "ok"
|
exe cp -ar "$toolLoc" "$toolBackup" && echoseq "ok"
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
versionNow=$([ ! -z $(which ${toolName}) ] && ${toolName} --version | sed 's/.*version: \([0-9.]\+\).*/\1/')
|
||||||
|
|
||||||
|
step_12_info() {
|
||||||
|
if [ ! -z $versionNow ] ; then
|
||||||
|
if [ "$toolVersion" == "$versionNow" ] ; then
|
||||||
|
echo "No upgrade available. Already on latest: $versionNow"
|
||||||
|
else
|
||||||
|
echo "Download new version $toolVersion to $toolDir"
|
||||||
|
echoinfo " - installed version: $versionNow -"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Download new version $toolVersion to $toolDir"
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
step_12_alias() { ALIAS="upgrade"; }
|
||||||
|
step_12() {
|
||||||
|
step backup
|
||||||
exe wget -O "$toolLoc" $toolDownload
|
exe wget -O "$toolLoc" $toolDownload
|
||||||
endReturn -o $? "Download failed"
|
endReturn -o $? "Download failed"
|
||||||
exe chmod +x "$toolLoc"
|
exe chmod +x "$toolLoc"
|
||||||
exe service ${toolName} restart >>/dev/null 2>&1
|
exe service ${toolName} restart >>/dev/null 2>&1
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
versionNow=$([ ! -z $(which ${toolName}) ] && ${toolName} --version | sed 's/.*version: \([0-9.]\+\).*/\1/')
|
|
||||||
|
|
||||||
step_30_info() { echo "(TODO) Build from source"; }
|
|
||||||
|
step_30_info() { echo "Download go"; }
|
||||||
step_30_alias() { ALIAS="build"; }
|
step_30_alias() { ALIAS="build"; }
|
||||||
step_30() {
|
step_30() {
|
||||||
local goVer="$(curl --silent -L https://go.dev/doc/devel/release | \
|
local goVer="$(curl --silent -L https://go.dev/doc/devel/release | \
|
||||||
@@ -125,6 +135,19 @@ step_30() {
|
|||||||
sed 's/.*go\([[:digit:]\.]\+\).*/\1/g')"
|
sed 's/.*go\([[:digit:]\.]\+\).*/\1/g')"
|
||||||
local goArch="armv6l" #arm64"
|
local goArch="armv6l" #arm64"
|
||||||
local goDownUrl="https://go.dev/dl/go${goVer}.linux-${goArch}.tar.gz"
|
local goDownUrl="https://go.dev/dl/go${goVer}.linux-${goArch}.tar.gz"
|
||||||
|
|
||||||
|
# Download latest go
|
||||||
|
if [ ! -e "${goDir}" ] ; then
|
||||||
|
echoseq "Download go${goVer}: ${goDownUrl}"
|
||||||
|
exe wget -O "${goDownLoc}" ${goDownUrl}
|
||||||
|
endReturn -o $? "Download ${goVer} failed"
|
||||||
|
exe tar -C "$(dirname -- "${goDir}")" -xzf "${goDownLoc}"
|
||||||
|
endReturn -o $? "Extraction ${goVer} failed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
step_31_info() { echo "Compile matterbridge"; }
|
||||||
|
step_31() {
|
||||||
local mabrTags="\
|
local mabrTags="\
|
||||||
noapi,\
|
noapi,\
|
||||||
nodiscord,\
|
nodiscord,\
|
||||||
@@ -145,10 +168,15 @@ novk,\
|
|||||||
nozulip,\
|
nozulip,\
|
||||||
whatsappmulti"
|
whatsappmulti"
|
||||||
|
|
||||||
echoseq "Download go${goVer}: ${goDownUrl}"
|
# Compile matterbridge
|
||||||
echoseq "go install -tags ${mabrTags} github.com/42wim/matterbridge@master"
|
exe "${goDir}/bin/go" install -tags ${mabrTags} github.com/42wim/matterbridge@master
|
||||||
echoseq "step backup"
|
step backup
|
||||||
echoseq "cp -ar ${HOME}/go/bin/matterbridge /usr/local/bin"
|
exe cp -ar "${HOME}/go/bin/matterbridge" "${toolDir}"
|
||||||
|
}
|
||||||
|
|
||||||
|
step_32_info() { echo "Clean temporary files"; }
|
||||||
|
step_32() {
|
||||||
|
exe rm -f "${goDownLoc}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Sequence Revision
|
# Sequence Revision
|
||||||
|
Reference in New Issue
Block a user