summaryrefslogtreecommitdiff
path: root/src/completion
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2024-02-08 16:11:50 +0000
committerGitHub <noreply@github.com>2024-02-08 16:11:50 +0000
commit632c9d9f3d52e2c9571018553b5b45d9a3fe6ffd (patch)
tree0034b94a17e45192995749ed73b08054d2187b8d /src/completion
parent98c6434e7433e6a0aa1034b39c9130d390bbe591 (diff)
parentb76e4c808c954dcf498b510aaa9c8d6c91850991 (diff)
downloadvyos-1x-632c9d9f3d52e2c9571018553b5b45d9a3fe6ffd.tar.gz
vyos-1x-632c9d9f3d52e2c9571018553b5b45d9a3fe6ffd.zip
Merge pull request #2507 from erkin/image-tools
op-mode: T4038: Python rewrite of image tools
Diffstat (limited to 'src/completion')
-rwxr-xr-xsrc/completion/list_images.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/completion/list_images.py b/src/completion/list_images.py
new file mode 100755
index 000000000..eae29c084
--- /dev/null
+++ b/src/completion/list_images.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2023 VyOS maintainers and contributors
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 or later as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import argparse
+import os
+import sys
+
+from vyos.system.image import is_live_boot
+from vyos.system.image import get_running_image
+
+
+parser = argparse.ArgumentParser(description='list available system images')
+parser.add_argument('--no-running', action='store_true',
+ help='do not display the currently running image')
+
+def get_images(omit_running: bool = False) -> list[str]:
+ if is_live_boot():
+ return []
+ images = os.listdir("/lib/live/mount/persistence/boot")
+ if omit_running:
+ images.remove(get_running_image())
+ if 'grub' in images:
+ images.remove('grub')
+ if 'efi' in images:
+ images.remove('efi')
+ return sorted(images)
+
+if __name__ == '__main__':
+ args = parser.parse_args()
+ print("\n".join(get_images(omit_running=args.no_running)))
+ sys.exit(0)