[gnome-continuous-yocto/gnomeostree-3.28-rocko: 1800/8267] bitbake: toaster: lsupdates Add spinner for parsing/http fetch
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 1800/8267] bitbake: toaster: lsupdates Add spinner for parsing/http fetch
- Date: Sat, 16 Dec 2017 22:20:06 +0000 (UTC)
commit 49039829e1968418e903e5c0fda9bbbd8629f4db
Author: Michael Wood <michael g wood intel com>
Date: Mon Aug 1 19:38:28 2016 +0100
bitbake: toaster: lsupdates Add spinner for parsing/http fetch
Adds a spinner so that you know that the parse and http fetch from the
layerindex is in progress.
(Bitbake rev: e1c1c8827f3892551084bf1c0909c1b33f0dca83)
Signed-off-by: Michael Wood <michael g wood intel com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
.../toaster/orm/management/commands/lsupdates.py | 35 ++++++++++++++++++-
1 files changed, 33 insertions(+), 2 deletions(-)
---
diff --git a/bitbake/lib/toaster/orm/management/commands/lsupdates.py
b/bitbake/lib/toaster/orm/management/commands/lsupdates.py
index be63a85..89817c8 100644
--- a/bitbake/lib/toaster/orm/management/commands/lsupdates.py
+++ b/bitbake/lib/toaster/orm/management/commands/lsupdates.py
@@ -29,11 +29,33 @@ import sys
import json
import logging
+import threading
+import time
logger = logging.getLogger("toaster")
DEFAULT_LAYERINDEX_SERVER = "http://layers.openembedded.org/layerindex/api/"
+class Spinner(threading.Thread):
+ """ A simple progress spinner to indicate download/parsing is happening"""
+ def __init__(self, *args, **kwargs):
+ super(Spinner, self).__init__(*args, **kwargs)
+ self.setDaemon(True)
+ self.signal = True
+
+ def run(self):
+ os.system('setterm -cursor off')
+ while self.signal:
+ for char in ["/", "-", "\\", "|"]:
+ sys.stdout.write("\r" + char)
+ sys.stdout.flush()
+ time.sleep(0.25)
+ os.system('setterm -cursor on')
+
+ def stop(self):
+ self.signal = False
+
+
class Command(NoArgsCommand):
args = ""
help = "Updates locally cached information from a layerindex server"
@@ -55,6 +77,7 @@ class Command(NoArgsCommand):
Fetches layer, recipe and machine information from a layerindex
server
"""
+ os.system('setterm -cursor off')
self.apiurl = DEFAULT_LAYERINDEX_SERVER
@@ -70,6 +93,9 @@ class Command(NoArgsCommand):
oe_core_layer = 'openembedded-core'
def _get_json_response(apiurl=DEFAULT_LAYERINDEX_SERVER):
+ http_progress = Spinner()
+ http_progress.start()
+
_parsedurl = urlparse(apiurl)
path = _parsedurl.path
@@ -79,7 +105,10 @@ class Command(NoArgsCommand):
except URLError as e:
raise Exception("Failed to read %s: %s" % (path, e.reason))
- return json.loads(res.read().decode('utf-8'))
+ parsed = json.loads(res.read().decode('utf-8'))
+
+ http_progress.stop()
+ return parsed
# verify we can get the basic api
try:
@@ -293,5 +322,7 @@ class Command(NoArgsCommand):
self.mini_progress("recipes", i, total)
+ os.system('setterm -cursor on')
+
def handle_noargs(self, **options):
- self.update()
+ self.update()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]