Compare commits

..
6 Commits
Author SHA1 Message Date
Colin Seymour 4567555071 Quote DB name in existance check (#43)
Quote DB name
2024-09-13 09:56:26 +01:00
Colin Seymour 694b43eb93 Only include Teslamate release notes if updated since last release (#38) 2024-08-30 13:10:24 +01:00
Colin Seymour 04e01df081 Make startup scripts robust (#37)
* Clean up file if exists and mkdir -p

* Make importing dashboards more robust

* Update info msgs
2024-08-30 12:45:36 +01:00
renovate[bot] d97377bc0e Update home-assistant/builder action to v2024.08.2 (#30)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-24 09:33:15 +01:00
Colin Seymour 0aca1dd417 Fix image URL (#33) 2024-08-24 09:32:36 +01:00
renovate[bot]andColin Seymour 556a2f23af Update softprops/action-gh-release action to v2.0.8 (#26)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Colin Seymour <colin@symr.io>
2024-08-12 06:56:30 +01:00
7 changed files with 38 additions and 26 deletions
+1 -1
View File
@@ -42,7 +42,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and publish - name: Build and publish
uses: home-assistant/builder@2024.03.5 uses: home-assistant/builder@2024.08.2
with: with:
args: | args: |
--${{ matrix.arch }} \ --${{ matrix.arch }} \
+4 -3
View File
@@ -35,12 +35,13 @@ jobs:
- name: Get TeslaMate release notes - name: Get TeslaMate release notes
run: | run: |
touch CHANGELOG.txt touch CHANGELOG.txt
gh pr list --repo lildude/ha-addon-teslamate --state=merged --search="Update TeslaMate" --limit=1 --json=body --jq '.[].body' | sed -n "/<\/summary>/,/<\/details>/p" | sed '1d;$d' > changelog.tmp last_release_date=$(gh release list --repo lildude/ha-addon-teslamate --limit=1 --json=publishedAt)
gh pr list --repo lildude/ha-addon-teslamate --state=merged --search="Update TeslaMate in:title closed:>$last_release_date" --limit=1 --json=body --jq '.[].body' | sed -n "/<\/summary>/,/<\/details>/p" | sed '1d;$d' > changelog.tmp
if [ -s changelog.tmp ]; then if [ -s changelog.tmp ]; then
echo "## TeslaMate Release Notes" > CHANGELOG.txt echo "## TeslaMate Release Notes" > CHANGELOG.txt
cat changelog.tmp >> CHANGELOG.txt cat changelog.tmp >> CHANGELOG.txt
echo -e "---\n\n## Add-on Release Notes\n\n" >> CHANGELOG.txt
fi fi
echo -e "---\n\n## Add-on Release Notes\n\n" >> CHANGELOG.txt
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create tag - name: Create tag
@@ -51,7 +52,7 @@ jobs:
git push --tags git push --tags
working-directory: ${{ github.workspace }}/teslamate working-directory: ${{ github.workspace }}/teslamate
- name: Create release - name: Create release
uses: softprops/action-gh-release@v2.0.7 uses: softprops/action-gh-release@v2.0.8
with: with:
tag_name: v${{ steps.semver.outputs.semver }} tag_name: v${{ steps.semver.outputs.semver }}
body_path: CHANGELOG.txt body_path: CHANGELOG.txt
+1 -1
View File
@@ -35,7 +35,7 @@ jobs:
uses: actions/checkout@v4.1.7 uses: actions/checkout@v4.1.7
- name: Build add-on - name: Build add-on
uses: home-assistant/builder@2024.03.5 uses: home-assistant/builder@2024.08.2
with: with:
args: | args: |
--test \ --test \
+1 -1
View File
@@ -144,7 +144,7 @@ Follow this process:
[docker]: https://hub.docker.com/r/teslamate/teslamate [docker]: https://hub.docker.com/r/teslamate/teslamate
[elixir]: https://elixir-lang.org/ [elixir]: https://elixir-lang.org/
[grafana-addon]: https://github.com/hassio-addons/addon-grafana [grafana-addon]: https://github.com/hassio-addons/addon-grafana
[grafana-datasource]: https://raw.githubusercontent.com/lildude/hassio-addon-teslamate/main/imgs/grafana-postgres.png [grafana-datasource]: https://raw.githubusercontent.com/lildude/ha-addon-teslamate/main/imgs/grafana-postgres.png
[mosquitto-docs]: https://github.com/home-assistant/addons/blob/master/mosquitto/DOCS.md [mosquitto-docs]: https://github.com/home-assistant/addons/blob/master/mosquitto/DOCS.md
[samba-addon]: https://github.com/home-assistant/addons/blob/master/samba/DOCS.md [samba-addon]: https://github.com/home-assistant/addons/blob/master/samba/DOCS.md
[ssh-addon]: https://github.com/home-assistant/addons/blob/master/ssh/DOCS.md [ssh-addon]: https://github.com/home-assistant/addons/blob/master/ssh/DOCS.md
+21 -16
View File
@@ -11,13 +11,14 @@
set -o errexit set -o errexit
readonly HOST=$(bashio::config 'grafana_host') HOST=$(bashio::config 'grafana_host')
readonly PORT=$(bashio::config 'grafana_port') PORT=$(bashio::config 'grafana_port')
readonly USER=$(bashio::config 'grafana_user') USER=$(bashio::config 'grafana_user')
readonly PASS=$(bashio::config 'grafana_pass') PASS=$(bashio::config 'grafana_pass')
readonly DASHBOARDS_DIRECTORY="/dashboards" DASHBOARDS_DIRECTORY="/dashboards"
readonly FOLDER_NAME=$(bashio::config 'grafana_folder_name') FOLDER_NAME=$(bashio::config 'grafana_folder_name')
readonly HOST PORT USER PASS DASHBOARDS_DIRECTORY FOLDER_NAME
main() { main() {
@@ -25,13 +26,12 @@ main() {
URL="http://$HOST:$PORT" URL="http://$HOST:$PORT"
LOGIN="$USER:$PASS" LOGIN="$USER:$PASS"
case $task in case $task in
backup) backup;; backup) backup;;
restore) restore;; restore) restore;;
*) exit 1;; *) exit 1;;
esac esac
} }
@@ -42,9 +42,7 @@ backup() {
dashboard_json=$(get_dashboard "$dashboard") dashboard_json=$(get_dashboard "$dashboard")
if [[ -z "$dashboard_json" ]]; then if [[ -z "$dashboard_json" ]]; then
echo "ERROR: echo "ERROR: Couldn't retrieve dashboard $dashboard."
Couldn't retrieve dashboard $dashboard.
"
exit 1 exit 1
fi fi
@@ -57,10 +55,18 @@ backup() {
restore() { restore() {
bashio::log.info "Checking for Grafana folder: $FOLDER_NAME" bashio::log.info "Checking for Grafana folder: $FOLDER_NAME"
FLD=$(curl --silent --show-error \ folders=$(curl --silent --show-error \
--user "$LOGIN" -H "Content-Type: application/json" \ --user "$LOGIN" -H "Content-Type: application/json" \
$URL/api/folders | jq ".[] | select(.title==\"$FOLDER_NAME\")") "$URL/api/folders")
if [[ $folders == *"statusCode"* ]]; then
bashio::log.error "Error getting Grafana folders: $(echo "$folders" | jq -r .message)"
bashio::log.debug "$folders"
exit 1
fi
FLD=$(echo "$folders" | jq ".[] | select(.title==\"$FOLDER_NAME\")")
if [[ -z "$FLD" ]]; then if [[ -z "$FLD" ]]; then
bashio::log.info "Not found... creating" bashio::log.info "Not found... creating"
FLD=$(curl \ FLD=$(curl \
@@ -72,7 +78,7 @@ restore() {
"$URL/api/folders") "$URL/api/folders")
fi fi
FOLDER_ID=$(echo $FLD | jq -r .id) FOLDER_ID=$(echo "$FLD" | jq -r .id)
if [[ -z "$FOLDER_ID" ]]; then if [[ -z "$FOLDER_ID" ]]; then
bashio::log.error "Could not determine Grafana folder id" bashio::log.error "Could not determine Grafana folder id"
@@ -123,5 +129,4 @@ list_dashboards() {
cut -d '/' -f2 cut -d '/' -f2
} }
main "$@" main "$@"
+7 -1
View File
@@ -1,5 +1,11 @@
#!/command/with-contenv bashio #!/command/with-contenv bashio
# -*- bash -*- # -*- bash -*-
# shellcheck shell=bash # shellcheck shell=bash
mkdir /run/nginx
bashio::log.info "Starting NGINX..."
if [ -f /run/nginx ]; then
rm -f /run/nginx
fi
mkdir -p /run/nginx
exec nginx -g 'daemon off;error_log /proc/1/fd/1 error;' exec nginx -g 'daemon off;error_log /proc/1/fd/1 error;'
+3 -3
View File
@@ -54,14 +54,14 @@ done
# Import dashboards # Import dashboards
if bashio::config.true 'grafana_import_dashboards'; then if bashio::config.true 'grafana_import_dashboards'; then
/dashboards.sh restore /dashboards.sh restore || bashio::log.error "Failed to import dashboards"
fi fi
# Create the PostgreSQL database if it doesn't exist # Create the PostgreSQL database if it doesn't exist
if pg_isready -h "$DATABASE_HOST" -p "$DATABASE_PORT" > /dev/null 2>&1; then if pg_isready -h "$DATABASE_HOST" -p "$DATABASE_PORT" > /dev/null 2>&1; then
bashio::log.info "Creating database '$DATABASE_NAME' on $DATABASE_HOST" bashio::log.info "Creating database '$DATABASE_NAME' on $DATABASE_HOST"
if [[ -n $(PGPASSWORD="$DATABASE_PASS" psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USER" postgres -Atqc "\list $DATABASE_NAME") ]]; then if [[ -n $(PGPASSWORD="$DATABASE_PASS" psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USER" postgres -Atqc "\list \"$DATABASE_NAME\"") ]]; then
bashio::log.info "Database $DATABASE_NAME already exists" bashio::log.info "Database $DATABASE_NAME already exists"
else else
if PGPASSWORD="$DATABASE_PASS" psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USER" postgres -qc "CREATE DATABASE \"$DATABASE_NAME\""; then if PGPASSWORD="$DATABASE_PASS" psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USER" postgres -qc "CREATE DATABASE \"$DATABASE_NAME\""; then
@@ -78,7 +78,7 @@ fi
ulimit -n 1048576 ulimit -n 1048576
bashio::log.info "Starting TeslaMate" bashio::log.info "Starting TeslaMate..."
cd /opt/app cd /opt/app
exec $(/usr/bin/env sh) /entrypoint.sh bin/teslamate start exec $(/usr/bin/env sh) /entrypoint.sh bin/teslamate start