Skip to content

Conversation

@TimInTech
Copy link
Owner

@TimInTech TimInTech commented Oct 3, 2025

  • fix: installer package install, resolver handling, systemd RW paths; docs cleanup
  • fix(installer): restore apt install, resolver handling, tls cert bundle, systemd write paths, robust healthcheck

Zusammenfassung von Sourcery

Installationsskript verfeinern durch Behebung der Dienst-Erkennung und des Konfigurations-Renderings, Vereinfachung von Kommentaren sowie Integration von Syntaxprüfungen und Ausführung.

Fehlerbehebungen:

  • Korrektur des systemd-resolved Dienst-Erkennungs-Regex im Installationsskript
  • Behebung der here-doc Begrenzer-Nutzung für das Unbound Konfigurations-Rendering

Verbesserungen:

  • Vereinfachung der Kommentarformatierung des Fehler-Handlers
  • Hinzufügen von Syntaxvalidierung und automatischer Ausführung am Ende des Installationsskripts
Original summary in English

Summary by Sourcery

Refine installer script by fixing service detection and configuration rendering, simplifying comments, and integrating syntax checks and execution.

Bug Fixes:

  • Correct systemd-resolved service detection regex in installer script
  • Fix here-doc delimiter usage for unbound configuration rendering

Enhancements:

  • Simplify error handler comment formatting
  • Add syntax validation and automatic execution at the end of install script

@sourcery-ai
Copy link

sourcery-ai bot commented Oct 3, 2025

Leitfaden für Prüfer (bei kleinen PRs eingeklappt)

Leitfaden für Prüfer

Verfeinert das Installer-Skript durch Bereinigung des Kommentarstils, Behebung der Resolver-Erkennung, Standardisierung des Unbound-Heredocs und Hinzufügen einer Syntaxvalidierung mit einem Ausführungs-Stub.

Sequenzdiagramm für verbesserte systemd-resolved-Handhabung im Installer

sequenceDiagram
    participant Script
    participant Systemd
    Script->>Systemd: Prüfe, ob systemd-resolved.service existiert
    alt Dienst existiert und ist aktiv
        Script->>Systemd: Stoppe systemd-resolved
    else Dienst nicht aktiv oder nicht vorhanden
        Script-->>Systemd: Keine Aktion
    end
Loading

Flussdiagramm für aktualisierte Installer-Ausführung und -Validierung

flowchart TD
    A["Benutzer führt install.sh aus"] --> B["Skript führt Syntaxprüfung durch: bash -n install.sh"]
    B -->|Wenn Syntax OK| C["Skript wird ausgeführt: ./install.sh"]
    B -->|Wenn Syntaxfehler| D["Fehler: Syntax ungültig"]
Loading

Änderungen auf Dateiebene

Änderung Details Files
Bereinigung des Kommentarstils des Fehlerhandlers
  • Komplexes Emoji im Kommentar durch ein einfacheres ersetzt
  • Kommentarpräfix vor dem trap-Befehl angepasst
install.sh
Behebung der systemd-resolved-Erkennung und -Handhabung
  • Regex aktualisiert, um ‘systemd-resolved.service’ genau abzugleichen
  • Stopp-Befehl durch eine Aktivzustandsprüfung abgesichert
install.sh
Standardisierung des Unbound-Konfigurations-Heredocs
  • Wechsel vom benutzerdefinierten UNBOUND_EOF-Trennzeichen zum Standard-EOF
  • Anführungszeichen entfernt, um Variableninterpolation zu ermöglichen
install.sh
Hinzufügen einer Syntaxprüfung und automatisierter Ausführung
  • Bash-Syntaxvalidierungsschritt angehängt
  • Skriptaufrufbefehle am Ende hinzugefügt
install.sh

Tipps und Befehle

Interaktion mit Sourcery

  • Neue Überprüfung auslösen: Kommentieren Sie @sourcery-ai review im Pull Request.
  • Diskussionen fortsetzen: Antworten Sie direkt auf Sourcerys Überprüfungskommentare.
  • Ein GitHub-Issue aus einem Überprüfungskommentar generieren: Bitten Sie Sourcery, ein Issue aus einem Überprüfungskommentar zu erstellen, indem Sie darauf antworten. Sie können auch auf einen Überprüfungskommentar mit @sourcery-ai issue antworten, um ein Issue daraus zu erstellen.
  • Einen Pull-Request-Titel generieren: Schreiben Sie @sourcery-ai an beliebiger Stelle im Pull-Request-Titel, um jederzeit einen Titel zu generieren. Sie können auch @sourcery-ai title im Pull Request kommentieren, um den Titel jederzeit neu zu generieren.
  • Eine Pull-Request-Zusammenfassung generieren: Schreiben Sie @sourcery-ai summary an beliebiger Stelle im Pull-Request-Text, um jederzeit genau dort eine PR-Zusammenfassung zu generieren, wo Sie sie haben möchten. Sie können auch @sourcery-ai summary im Pull Request kommentieren, um die Zusammenfassung jederzeit neu zu generieren.
  • Leitfaden für Prüfer generieren: Kommentieren Sie @sourcery-ai guide im Pull Request, um den Leitfaden für Prüfer jederzeit (neu) zu generieren.
  • Alle Sourcery-Kommentare auflösen: Kommentieren Sie @sourcery-ai resolve im Pull Request, um alle Sourcery-Kommentare aufzulösen. Nützlich, wenn Sie bereits alle Kommentare bearbeitet haben und sie nicht mehr sehen möchten.
  • Alle Sourcery-Überprüfungen verwerfen: Kommentieren Sie @sourcery-ai dismiss im Pull Request, um alle bestehenden Sourcery-Überprüfungen zu verwerfen. Besonders nützlich, wenn Sie mit einer neuen Überprüfung von vorne beginnen möchten – vergessen Sie nicht, @sourcery-ai review zu kommentieren, um eine neue Überprüfung auszulösen!

Ihre Erfahrung anpassen

Greifen Sie auf Ihr Dashboard zu, um:

  • Überprüfungsfunktionen wie die von Sourcery generierte Pull-Request-Zusammenfassung, den Leitfaden für Prüfer und andere zu aktivieren oder zu deaktivieren.
  • Die Überprüfungssprache zu ändern.
  • Benutzerdefinierte Überprüfungsanweisungen hinzuzufügen, zu entfernen oder zu bearbeiten.
  • Andere Überprüfungseinstellungen anzupassen.

Hilfe erhalten

Original review guide in English
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Refines the installer script by cleaning up comment styling, fixing resolver detection, standardizing the Unbound heredoc, and adding syntax validation with an execution stub.

Sequence diagram for improved systemd-resolved handling in installer

sequenceDiagram
    participant Script
    participant Systemd
    Script->>Systemd: Check if systemd-resolved.service exists
    alt Service exists and is active
        Script->>Systemd: Stop systemd-resolved
    else Service not active or not present
        Script-->>Systemd: No action
    end
Loading

Flow diagram for updated installer execution and validation

flowchart TD
    A["User runs install.sh"] --> B["Script performs syntax check: bash -n install.sh"]
    B -->|If syntax OK| C["Script executes: ./install.sh"]
    B -->|If syntax error| D["Error: Syntax invalid"]
Loading

File-Level Changes

Change Details Files
Clean up error handler comment styling
  • Replaced complex emoji in comment with simpler one
  • Adjusted comment prefix before trap command
install.sh
Fix systemd-resolved detection and handling
  • Updated regex to accurately match ‘systemd-resolved.service’
  • Guards stop command behind an active-state check
install.sh
Standardize Unbound configuration heredoc
  • Switched from custom UNBOUND_EOF delimiter to standard EOF
  • Removed quotes to allow variable interpolation
install.sh
Add syntax check and automated execution
  • Appended bash syntax validation step
  • Added script invocation commands at the end
install.sh

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hallo - Ich habe deine Änderungen überprüft und sie sehen großartig aus!

Prompt für KI-Agenten
Bitte beachte die Kommentare aus dieser Code-Überprüfung:

## Einzelne Kommentare

### Kommentar 1
<location> `install.sh:293` </location>
<code_context>
     show_summary
 }
 main "$@"
+SCRIPT
+
+# Syntax prüfen & ausführen
</code_context>

<issue_to_address>
**issue:** Die Ergänzung von '+SCRIPT' scheint eine überflüssige Zeile zu sein.

Bitte entferne diese Zeile, um Verwirrung oder unbeabsichtigtes Verhalten zu vermeiden.
</issue_to_address>

### Kommentar 2
<location> `install.sh:296-297` </location>
<code_context>
+SCRIPT
+
+# Syntax prüfen & ausführen
+sudo bash -n install.sh && echo "Syntax OK"
+sudo ./install.sh
</code_context>

<issue_to_address>
**issue (bug_risk):** Das Ausführen von 'sudo bash -n install.sh' und anschließend 'sudo ./install.sh' kann dazu führen, dass sich das Skript rekursiv selbst ausführt.

Wenn das Ziel darin besteht, ein anderes Skript zu validieren und auszuführen, gib bitte den korrekten Dateinamen an, um Rekursion oder unbeabsichtigtes Verhalten zu vermeiden.
</issue_to_address>

### Kommentar 3
<location> `install.sh:154-157` </location>
<code_context>
     curl -fsSL https://www.internic.net/domain/named.root -o /var/lib/unbound/root.hints

-    cat > /etc/unbound/unbound.conf.d/pi-hole.conf <<'UNBOUND_EOF'
+    cat > /etc/unbound/unbound.conf.d/pi-hole.conf <<EOF
 server:
     interface: 127.0.0.1
</code_context>

<issue_to_address>
**suggestion (bug_risk):** Das Umschalten von einem zitierten Heredoc zu einem nicht zitierten kann zu Variablenerweiterung führen.

Das vorherige zitierte Heredoc verhinderte die Variablenerweiterung; die neue nicht zitierte Version wird Variablen wie $UNBOUND_PORT erweitern. Bestätige, dass diese Änderung beabsichtigt ist und alle Variablen gesetzt sind, oder kehre zum zitierten Heredoc zurück, um unbeabsichtigte Substitutionen zu vermeiden.

```suggestion
    cat > /etc/unbound/unbound.conf.d/pi-hole.conf <<'UNBOUND_EOF'
server:
    interface: 127.0.0.1
    port: $UNBOUND_PORT
    forward-addr: 9.9.9.9@853#dns.quad9.net
    forward-addr: 149.112.112.112@853#dns.quad9.net
# NOTE: This is DoT forwarding to Quad9 (not full recursion to the root); intended.
UNBOUND_EOF
```
</issue_to_address>

Sourcery ist kostenlos für Open Source – wenn Ihnen unsere Bewertungen gefallen, denken Sie bitte darüber nach, sie zu teilen ✨
Hilf mir, nützlicher zu sein! Bitte klicke 👍 oder 👎 bei jedem Kommentar, und ich werde das Feedback nutzen, um deine Bewertungen zu verbessern.
Original comment in English

Hey there - I've reviewed your changes and they look great!

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location> `install.sh:293` </location>
<code_context>
     show_summary
 }
 main "$@"
+SCRIPT
+
+# Syntax prüfen & ausführen
</code_context>

<issue_to_address>
**issue:** The addition of '+SCRIPT' appears to be a stray line.

Please remove this line to prevent confusion or unintended behavior.
</issue_to_address>

### Comment 2
<location> `install.sh:296-297` </location>
<code_context>
+SCRIPT
+
+# Syntax prüfen & ausführen
+sudo bash -n install.sh && echo "Syntax OK"
+sudo ./install.sh
</code_context>

<issue_to_address>
**issue (bug_risk):** Running 'sudo bash -n install.sh' and then 'sudo ./install.sh' may cause the script to execute itself recursively.

If the goal is to validate and run a different script, please specify the correct file name to avoid recursion or unintended behavior.
</issue_to_address>

### Comment 3
<location> `install.sh:154-157` </location>
<code_context>
     curl -fsSL https://www.internic.net/domain/named.root -o /var/lib/unbound/root.hints

-    cat > /etc/unbound/unbound.conf.d/pi-hole.conf <<'UNBOUND_EOF'
+    cat > /etc/unbound/unbound.conf.d/pi-hole.conf <<EOF
 server:
     interface: 127.0.0.1
</code_context>

<issue_to_address>
**suggestion (bug_risk):** Switching from a quoted heredoc to an unquoted one may cause variable expansion.

The previous quoted heredoc prevented variable expansion; the new unquoted version will expand variables like $UNBOUND_PORT. Confirm this change is intentional and all variables are set, or revert to the quoted heredoc to avoid unintended substitutions.

```suggestion
    cat > /etc/unbound/unbound.conf.d/pi-hole.conf <<'UNBOUND_EOF'
server:
    interface: 127.0.0.1
    port: $UNBOUND_PORT
    forward-addr: 9.9.9.9@853#dns.quad9.net
    forward-addr: 149.112.112.112@853#dns.quad9.net
# NOTE: This is DoT forwarding to Quad9 (not full recursion to the root); intended.
UNBOUND_EOF
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

show_summary
}
main "$@"
SCRIPT
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue: Die Ergänzung von '+SCRIPT' scheint eine überflüssige Zeile zu sein.

Bitte entferne diese Zeile, um Verwirrung oder unbeabsichtigtes Verhalten zu vermeiden.

Original comment in English

issue: The addition of '+SCRIPT' appears to be a stray line.

Please remove this line to prevent confusion or unintended behavior.

Comment on lines +296 to +297
sudo bash -n install.sh && echo "Syntax OK"
sudo ./install.sh
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): Das Ausführen von 'sudo bash -n install.sh' und anschließend 'sudo ./install.sh' kann dazu führen, dass sich das Skript rekursiv selbst ausführt.

Wenn das Ziel darin besteht, ein anderes Skript zu validieren und auszuführen, gib bitte den korrekten Dateinamen an, um Rekursion oder unbeabsichtigtes Verhalten zu vermeiden.

Original comment in English

issue (bug_risk): Running 'sudo bash -n install.sh' and then 'sudo ./install.sh' may cause the script to execute itself recursively.

If the goal is to validate and run a different script, please specify the correct file name to avoid recursion or unintended behavior.

Comment on lines 154 to +157
forward-addr: 9.9.9.9@853#dns.quad9.net
forward-addr: 149.112.112.112@853#dns.quad9.net
# NOTE: This is DoT forwarding to Quad9 (not full recursion to the root); intended.
UNBOUND_EOF
EOF
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (bug_risk): Das Umschalten von einem zitierten Heredoc zu einem nicht zitierten kann zu Variablenerweiterung führen.

Das vorherige zitierte Heredoc verhinderte die Variablenerweiterung; die neue nicht zitierte Version wird Variablen wie $UNBOUND_PORT erweitern. Bestätige, dass diese Änderung beabsichtigt ist und alle Variablen gesetzt sind, oder kehre zum zitierten Heredoc zurück, um unbeabsichtigte Substitutionen zu vermeiden.

Suggested change
forward-addr: 9.9.9.9@853#dns.quad9.net
forward-addr: 149.112.112.112@853#dns.quad9.net
# NOTE: This is DoT forwarding to Quad9 (not full recursion to the root); intended.
UNBOUND_EOF
EOF
cat > /etc/unbound/unbound.conf.d/pi-hole.conf <<'UNBOUND_EOF'
server:
interface: 127.0.0.1
port: $UNBOUND_PORT
forward-addr: 9.9.9.9@853#dns.quad9.net
forward-addr: 149.112.112.112@853#dns.quad9.net
# NOTE: This is DoT forwarding to Quad9 (not full recursion to the root); intended.
UNBOUND_EOF
Original comment in English

suggestion (bug_risk): Switching from a quoted heredoc to an unquoted one may cause variable expansion.

The previous quoted heredoc prevented variable expansion; the new unquoted version will expand variables like $UNBOUND_PORT. Confirm this change is intentional and all variables are set, or revert to the quoted heredoc to avoid unintended substitutions.

Suggested change
forward-addr: 9.9.9.9@853#dns.quad9.net
forward-addr: 149.112.112.112@853#dns.quad9.net
# NOTE: This is DoT forwarding to Quad9 (not full recursion to the root); intended.
UNBOUND_EOF
EOF
cat > /etc/unbound/unbound.conf.d/pi-hole.conf <<'UNBOUND_EOF'
server:
interface: 127.0.0.1
port: $UNBOUND_PORT
forward-addr: 9.9.9.9@853#dns.quad9.net
forward-addr: 149.112.112.112@853#dns.quad9.net
# NOTE: This is DoT forwarding to Quad9 (not full recursion to the root); intended.
UNBOUND_EOF

@TimInTech TimInTech closed this Oct 3, 2025
@TimInTech TimInTech deleted the fix/installer-and-doc branch October 3, 2025 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants