Skip to content

Add backup / restore admin commands #747

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from
Draft

Conversation

thebentern
Copy link
Contributor

No description provided.

Copy link
Contributor

@ianmcorvidae ianmcorvidae left a comment

Choose a reason for hiding this comment

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

A couple small things, mostly seems good to me though

group.add_argument(
"--backup-prefs",
help="Tell the destination node to create a backup preferences file."
"Location: 0 for local flash, 1 for SD card.",
Copy link
Contributor

Choose a reason for hiding this comment

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

It might be nice if we allow people to pass FLASH and SD here. I think we could do that by trying to parse as an int, and if it fails, throw it at something like admin_pb2.AdminMessage.BackupLocation.__getattr__('FLASH') to convert.

I think this could be done by adding a helper function and passing it as type to these add_argument calls:

def backup_location(string):
    try:
        return int(string)
    except ValueError:
        return admin_pb2.AdminMessage.BackupLocation.__getattr__(string)

I'm a bit tired so hopefully I'm relaying this properly, heh.

Comment on lines +1817 to +1819
default=admin_pb2.AdminMessage.BackupLocation.FLASH,
nargs="?",
const=0,
Copy link
Contributor

Choose a reason for hiding this comment

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

You probably want default to stay None (that's what's passed if the argument isn't passed on the command line at all) and to set the admin_pb2.<...> value as const (which is what's passed if the argument is passed bare, without a real value).

@thebentern thebentern marked this pull request as draft March 10, 2025 23:11
@garthvh garthvh requested a review from Copilot May 20, 2025 16:56
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds new admin commands to backup, restore, and remove preference backups, along with updating the project version.

  • Updated version in pyproject.toml.
  • Added backupPreferences, restorePreferences, and removePreferencesBackups methods in meshtastic/node.py.
  • Updated main.py to support new admin commands via argparse.

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
pyproject.toml Version bump to 2.6.0a1 supporting new features.
meshtastic/node.py Introduced new admin commands for backup/restore actions.
meshtastic/main.py Extended the CLI with new arguments for backup operations.


group.add_argument(
"--restore-prefs",
help="Tell the destination node to remove backup preferences files."
Copy link
Preview

Copilot AI May 20, 2025

Choose a reason for hiding this comment

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

The help message for --restore-prefs is incorrect; it should describe restoring preferences rather than removing backup files. Consider changing it to something like "Tell the destination node to restore preferences from backup. Location: 0 for local flash, 1 for SD card."

Suggested change
help="Tell the destination node to remove backup preferences files."
help="Tell the destination node to restore preferences from a backup."

Copilot uses AI. Check for mistakes.

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