oriel388 06.12.2001:47

איך הייתם מממשים Gui שמראה התקדמות התקנה של script כלשהו? (לינוקס)

יש לי סקריפט כלשהו שמתקין ועושה כל מיני פעולות על מחשב שמותקן בו לינוקס (Linux Mint),
הייתי רוצה לממש איזה חלון UI כלשהו שמראה התקדמות של הסריפט שמתקין.
מבחינתי גם להריץ בתחילת הסקריפט את הGui ובכל נק' התקנה כלשהי בסקריפט לשלוח מלל כלשהו לGui כדי שיוצג למשתמש.

איך הייתם מממשים את זה?


אשמח לרעיונות
חוצה גם באדום 06.12.2002:10
1. הכי פשוט עם whiptail בתגובה להודעה מספר 0
oriel388 06.12.2009:56
2. UI נורא מיושן (מבחינת מראה כמובן).. בתגובה להודעה מספר 1
חשבתי על python+PyQt5..

חוצה גם באדום 06.12.2010:52
3. נו אפשר גם ב Java וב ++C בתגובה להודעה מספר 2
לא אמורים פה לנחש שיש לך רקע בפייתון או לענות לפי מראה . איפה שאתה חזק תעשה.
רק בפייתון יש לך כמה ספריות לזה אז השמיים הגבול
oriel388 06.12.2013:20
4. מכתב בתגובה להודעה מספר 3
צודק,

אני מנסה לקבל רעיון כיצד להעביר את הנתונים (סתם מלל, איזה רכיב מתקין כעת..) מה- Bash ל Gui app שמראה את אותו מלל.



Mr Andersson 06.12.2014:25
5. אולי שהסקריפט יכתוב לתוך קובץ והGUI יבצע WATCH על הקובץ? בתגובה להודעה מספר 0
oriel388 06.12.2016:43
6. אפשר.. בתגובה להודעה מספר 5
ראיתי גם פתרון דומה, באמצעות named pipe.. יכול לעבוד טוב?

Bar 17.12.2010:49
7. אולי עם abstract unix socket אם אתה רוצה שהמד התקדמות יהיה בprocess שונה בתגובה להודעה מספר 0
אם זה סקריפט יחסית פשוט, הייתי פשוט מדפיס Progress Bar ב-Terminal, יש מספיק דוגמאות לזה...
oriel388 01.01.2112:36
8. מכתב בתגובה להודעה מספר 7
בסוף הלכתי על named pipe להעביר את המידע מהסקריפט לחלון קטן שממימשתי עם tkinter בפייטון.
נראה שעובד סבבה..
אבל אני אבדוק לגבי ה bastract unix socket.
תודה
code_blue 15.01.2108:13
9. יש מצב אתה משתף מה עשית בתגובה להודעה מספר 8
אני בונה מדי פעם אוטומציות על בסיס פייתון/bash ולחלקן מייצר gui פשוט על בסיס פייתון flask וjs

באמת חסר לי החלק של ה"אונליין" לראות סטטוס התקדמות , או לראות לוגים רצים

נשלח ע"י הסלולרי
oriel388 21.01.2123:18
10. בשמחה בתגובה להודעה מספר 9
לגבי המימוש של ה named pipe, אתה יכול לראות פה דוגמא:
https://www.eadan.net/blog/ipc-with?...
יש מצב אפילו שלקחתי את המימוש שלי על בסיס זה.. ^

בניתי UI מאוד פשוט מבוסס tkinter, שמציג text שנשלח אליו ממקום אחר. המקום האחר הזה במקרה שלי זה script bash כלשהו שרץ מדי פעם..

אז יש לי 2 קבצי .py אחד שתכלס עושה writer ל named pipe. (נקרא לזה קובץ א')
ו.py השני זה המימוש של הtkinter ui וגם בפנים יש מימוש reader/listener של ה named pipe (נקרא לזה קובץ ב')


כאשר ה bash מתחיל לרוץ, אני קורא די בהתחלה לקובץ ב' כדי שה ui יתחיל לרוץ.
ואחרי כל פעולה מסוימת שהbash עושה, ושאני מעוניין שיראו את זה ב ui אני קורא לקובץ א' (עם argument של string text כלשהו שבא לי שיראו בחלון ui..)..

וזהו בגדול.. ככה כל פעם שהbash עולה, רץ לי ui פשוט שמציג "התקדמות" של ה bash (את הbash לא רואים כמובן, הוא רץ לו ברקע)
מבחינת ה"התקדמות" אין לי התקדמות ב%. שמתי רכיב ui של progressbar כזה שהוא אין-סופי

סורי על החפירה הארוכה, מקווה שההסבר ברור
@code_blue@
oriel388 21.01.2123:20
11. ועוד קובץ py בתגובה להודעה מספר 10
שמכיל תכלס מבנה קטן שקובץ א' ו- ב' מכירים ומשתמשים בו.

זה די כמו הקובץ message.py בדוגמא שהבאתי בקישור ^
העבר לפורום אחר
העבר לפורום:
סיבה:
תגובה חדשה
כותרת:
תוכן:
סמיילים:
הצג
עריכת אשכול
כותרת:
תוכן:
סמיילים:
הצג