Skip to content

Add Supervisor country#165

Merged
frenck merged 1 commit intohassio-addons:mainfrom
agners:add-supervisor-country
Apr 29, 2025
Merged

Add Supervisor country#165
frenck merged 1 commit intohassio-addons:mainfrom
agners:add-supervisor-country

Conversation

@agners
Copy link
Contributor

@agners agners commented Apr 28, 2025

Proposed Changes

Add support to read the installations Country as known by Supervisor.

See: home-assistant/supervisor#5826

Summary by CodeRabbit

  • New Features
    • Added the ability to get or set the current country of the system through a new command.

@coderabbitai
Copy link

coderabbitai bot commented Apr 28, 2025

Walkthrough

A new function named bashio::supervisor.country() has been introduced in the lib/supervisor.sh script. This function enables retrieval or modification of the system's country setting through the Supervisor API. When invoked without arguments, it fetches the current country value; when provided with an argument, it updates the country setting and clears the relevant cache. The implementation is consistent with existing Supervisor option functions.

Changes

File(s) Change Summary
lib/supervisor.sh Added the bashio::supervisor.country() function for getting or setting the system's country.

Poem

A bunny hopped in with a bashful grin,
Adding a country function, let the scripts begin!
Now settings are fetched, or changed with a dash,
Supervisor’s options, controlled in a flash.
With each little tweak, the system feels right—
A rabbit’s small touch brings new features to light!
🐇🌍

✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 445707a and e993cf3.

📒 Files selected for processing (1)
  • lib/supervisor.sh (1 hunks)

Comment on lines +191 to +204
function bashio::supervisor.country() {
local country=${1:-}

bashio::log.trace "${FUNCNAME[0]}:" "$@"

if bashio::var.has_value "${country}"; then
channel=$(bashio::var.json country "${country}")
bashio::api.supervisor POST /supervisor/options "${country}"
bashio::cache.flush_all
else
bashio::supervisor 'supervisor.info.country' '.country'
fi
}

Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add tests for bashio::supervisor.country()
The new getter/setter has no automated tests. Please add Bats (or equivalent) tests to cover both read and write paths:

  • Calling without args should return the cached or API-provided country string.
  • Calling with an argument should POST the correct JSON and flush the cache.

Copy link
Member

@frenck frenck left a comment

Choose a reason for hiding this comment

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

Thanks, @agners 👍

../Frenck

@frenck frenck added the new-feature New features or options. label Apr 29, 2025
@frenck frenck merged commit 5059ff1 into hassio-addons:main Apr 29, 2025
4 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Dec 30, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

new-feature New features or options.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants