diff --git a/birdnet-pi/CHANGELOG.md b/birdnet-pi/CHANGELOG.md index 4ce517cad..d16c9f73b 100644 --- a/birdnet-pi/CHANGELOG.md +++ b/birdnet-pi/CHANGELOG.md @@ -4,11 +4,11 @@ - Minor bugs fixed ## 2025.08.16 (20-08-2025) - Cleaned code and clarify new options - - Add interactive chart option : #107 - - New plot : #105 - - Add species management tools : #104 - - Add species confirmation option to recordings : #102 - - Add selectable duration mini-graphs for species pages : #101 + - Add interactive chart option : #107 + - New plot : #105 + - Add species management tools : #104 + - Add species confirmation option to recordings : #102 + - Add selectable duration mini-graphs for species pages : #101 ## 2025.08.15 (20-08-2025) - Minor bugs fixed diff --git a/birdnet-pi/rootfs/helpers/merge_open_prs.sh b/birdnet-pi/rootfs/helpers/merge_open_prs.sh index d1249d01b..0930d05b2 100755 --- a/birdnet-pi/rootfs/helpers/merge_open_prs.sh +++ b/birdnet-pi/rootfs/helpers/merge_open_prs.sh @@ -2,80 +2,81 @@ set -e update=yes if [[ "$update" = "yes" ]]; then - repo="https://github.com/alexbelgium/BirdNET-Pi.git" - # repo="https://github.com/Nachtzuster/BirdNET-Pi.git" - branch="main" - echo "Update with $branch of $repo" + repo="https://github.com/alexbelgium/BirdNET-Pi.git" + # repo="https://github.com/Nachtzuster/BirdNET-Pi.git" + branch="main" + echo "Update with $branch of $repo" - temp_dir="$(mktemp -d)" - target_dir="/home/${USER:-pi}/BirdNET-Pi" + temp_dir="$(mktemp -d)" + target_dir="/home/${USER:-pi}/BirdNET-Pi" - # Parse owner/repo from the URL - _url_no_git="${repo%.git}" - _path="${_url_no_git#https://github.com/}" - owner="${_path%%/*}" - reponame="${_path#*/}" + # Parse owner/repo from the URL + _url_no_git="${repo%.git}" + _path="${_url_no_git#https://github.com/}" + owner="${_path%%/*}" + reponame="${_path#*/}" - # --- helper: list open PRs via GitHub API (unauthenticated) ---------------- - list_open_prs() { - # prints PR numbers, one per line; returns non-zero if none or curl missing - command -v curl >/dev/null 2>&1 || return 1 - local page=1 per_page=100 out - local -a all=() chunk=() - while :; do - out="$(curl -fsSL "https://api.github.com/repos/${owner}/${reponame}/pulls?state=open&per_page=${per_page}&page=${page}")" || break - [[ -z "$out" || "$out" == "[]" ]] && break - if command -v jq >/dev/null 2>&1; then - mapfile -t chunk < <(printf '%s' "$out" | jq -r '.[] | select(.draft == false) | .number') - else - # Fallback JSON scraping if jq is unavailable - mapfile -t chunk < <(printf '%s' "$out" | grep -o '"number":[[:space:]]*[0-9]\+' | grep -o '[0-9]\+') - fi - ((${#chunk[@]}==0)) && break - all+=("${chunk[@]}") - ((${#chunk[@]} < per_page)) && break - ((page++)) - done - ((${#all[@]}==0)) && return 1 - printf '%s\n' "${all[@]}" - } + # --- helper: list open PRs via GitHub API (unauthenticated) ---------------- + list_open_prs() { + # prints PR numbers, one per line; returns non-zero if none or curl missing + command -v curl > /dev/null 2>&1 || return 1 + local page=1 per_page=100 out + local -a all=() chunk=() + while :; do + out="$(curl -fsSL "https://api.github.com/repos/${owner}/${reponame}/pulls?state=open&per_page=${per_page}&page=${page}")" || break + [[ -z "$out" || "$out" == "[]" ]] && break + if command -v jq > /dev/null 2>&1; then + mapfile -t chunk < <(printf '%s' "$out" | jq -r '.[] | select(.draft == false) | .number') + else + # Fallback JSON scraping if jq is unavailable + mapfile -t chunk < <(printf '%s' "$out" | grep -o '"number":[[:space:]]*[0-9]\+' | grep -o '[0-9]\+') + fi + ((${#chunk[@]} == 0)) && break + all+=("${chunk[@]}") + ((${#chunk[@]} < per_page)) && break + ((page++)) + done + ((${#all[@]} == 0)) && return 1 + printf '%s\n' "${all[@]}" + } - # --- clone base ------------------------------------------------------------ - git clone --quiet --branch "$branch" "$repo" "$temp_dir" - pushd "$temp_dir" >/dev/null - git fetch --quiet origin - git config user.name "Local PR Aggregator" - git config user.email "local@example.invalid" - git checkout -B with-open-prs "origin/${branch}" + # --- clone base ------------------------------------------------------------ + git clone --quiet --branch "$branch" "$repo" "$temp_dir" + pushd "$temp_dir" > /dev/null + git fetch --quiet origin + git config user.name "Local PR Aggregator" + git config user.email "local@example.invalid" + git checkout -B with-open-prs "origin/${branch}" - # --- fetch & merge only OPEN PRs ------------------------------------------- - mapfile -t prs < <(list_open_prs || true) - if ((${#prs[@]})); then - # Sort numerically (oldest first) - IFS=$'\n' prs=($(sort -n <<<"${prs[*]}")); unset IFS - echo "Open PR(s): ${prs[*]}" + # --- fetch & merge only OPEN PRs ------------------------------------------- + mapfile -t prs < <(list_open_prs || true) + if ((${#prs[@]})); then + # Sort numerically (oldest first) + IFS=$'\n' prs=($(sort -n <<< "${prs[*]}")) + unset IFS + echo "Open PR(s): ${prs[*]}" - for pr in "${prs[@]}"; do - echo "Fetching PR #${pr}…" - if git fetch --quiet origin "pull/${pr}/head:pr-${pr}"; then - echo "Merging PR #${pr} into with-open-prs…" - if git merge --no-ff -X theirs --no-edit "pr-${pr}"; then - echo "✓ merged PR #${pr}" - else - echo "! Conflict merging PR #${pr}; aborting and skipping." - git merge --abort || true - git reset --hard - git checkout with-open-prs - fi - else - echo "! Could not fetch refs for PR #${pr}; skipping." - fi - done - else - echo "No open PRs detected (API unavailable or none open)." - fi + for pr in "${prs[@]}"; do + echo "Fetching PR #${pr}…" + if git fetch --quiet origin "pull/${pr}/head:pr-${pr}"; then + echo "Merging PR #${pr} into with-open-prs…" + if git merge --no-ff -X theirs --no-edit "pr-${pr}"; then + echo "✓ merged PR #${pr}" + else + echo "! Conflict merging PR #${pr}; aborting and skipping." + git merge --abort || true + git reset --hard + git checkout with-open-prs + fi + else + echo "! Could not fetch refs for PR #${pr}; skipping." + fi + done + else + echo "No open PRs detected (API unavailable or none open)." + fi - popd >/dev/null - rm -rf "$target_dir" - mv "$temp_dir" "$target_dir" + popd > /dev/null + rm -rf "$target_dir" + mv "$temp_dir" "$target_dir" fi diff --git a/calibre/config.json b/calibre/config.json index 9cd77fb4a..46625f0af 100644 --- a/calibre/config.json +++ b/calibre/config.json @@ -94,13 +94,13 @@ "panel_admin": false, "panel_icon": "mdi:book-multiple", "ports": { - "8181/tcp": 8181, "8081/tcp": 8081, + "8181/tcp": 8181, "9090/tcp": 9090 }, "ports_description": { - "8181/tcp": "Calibre desktop gui (https)", "8081/tcp": "Calibre webserver gui, to be enabled within the desktop gui", + "8181/tcp": "Calibre desktop gui (https)", "9090/tcp": "Calibre wireless connection, to be enabled within the desktop gui" }, "privileged": [ diff --git a/emby_beta/rootfs/etc/services.d/nginx/run b/emby_beta/rootfs/etc/services.d/nginx/run old mode 100644 new mode 100755 diff --git a/immich/rootfs/etc/cont-init.d/99-run.sh b/immich/rootfs/etc/cont-init.d/99-run.sh index aa149d3e1..8cb549ca6 100755 --- a/immich/rootfs/etc/cont-init.d/99-run.sh +++ b/immich/rootfs/etc/cont-init.d/99-run.sh @@ -97,7 +97,7 @@ setup_root_user() { fi fi - # Check if the root user exists. + # Check if the root user exists. if ! psql "postgres://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}" -tAc "SELECT 1 FROM pg_roles WHERE rolname='root'" | grep -q 1; then bashio::log.info "Root user does not exist. Creating root user with DB_ROOT_PASSWORD..." psql "postgres://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOSTNAME}:${DB_PORT}" << EOF diff --git a/nzbget/rootfs/etc/services.d/nginx/run b/nzbget/rootfs/etc/services.d/nginx/run old mode 100644 new mode 100755 diff --git a/portainer/rootfs/etc/services.d/nginx/run b/portainer/rootfs/etc/services.d/nginx/run old mode 100644 new mode 100755 diff --git a/portainer/rootfs/etc/services.d/portainer/run b/portainer/rootfs/etc/services.d/portainer/run old mode 100644 new mode 100755 diff --git a/qbittorrent/rootfs/etc/cont-init.d/93-openvpn.sh b/qbittorrent/rootfs/etc/cont-init.d/93-openvpn.sh index 20fc7b7b5..e34b245a1 100755 --- a/qbittorrent/rootfs/etc/cont-init.d/93-openvpn.sh +++ b/qbittorrent/rootfs/etc/cont-init.d/93-openvpn.sh @@ -1,4 +1,3 @@ - #!/usr/bin/with-contenv bashio # shellcheck shell=bash set -e diff --git a/qbittorrent/rootfs/etc/s6-overlay/s6-rc.d/svc-qbittorrent/run b/qbittorrent/rootfs/etc/s6-overlay/s6-rc.d/svc-qbittorrent/run old mode 100644 new mode 100755 diff --git a/qbittorrent/rootfs/etc/services.d/nginx/run b/qbittorrent/rootfs/etc/services.d/nginx/run old mode 100644 new mode 100755 diff --git a/qbittorrent/rootfs/etc/services.d/timer/run b/qbittorrent/rootfs/etc/services.d/timer/run old mode 100644 new mode 100755 diff --git a/ubooquity/rootfs/etc/services.d/nginx/run b/ubooquity/rootfs/etc/services.d/nginx/run old mode 100644 new mode 100755