olielvewen / manjforum

A set of scripts for helping users with their issue hardware on Manjaro French Forum
GNU General Public License v3.0
0 stars 0 forks source link

remarques générales #1

Open papajoker opened 2 years ago

papajoker commented 2 years ago

EDIT: bon en fait j'ai réécrit un script (une ébauche) "général" qui prend un fichier yaml en paramètre, ce qui simplifie grandement les choses...

wifi.yaml:


lsb-release:
  command: "cat /etc/lsb-release"
  type: "shell"
  title:
    en: "System info"
    fr: "System Informations"
  require:
    - "/etc/lsb-release"

Zone Wifi:
  command: "iw reg get"
  require:
    - "iw"

Usb Infos:
  command: "lsusb"
  title:
    fr: "Info sur Periphériques Usb"

Pci Infos:
  command: "lspci"
  title:
    fr: "Info sur Periphériques Pci"

Net Info Inxi:
  command: "inxi -Nx"
  require:
    - "inxi"

net Info:
  command: "iwconfig"
  title:
    fr: "Info Réseau"

Standard Net Info:
  command: "ifconfig"
  title:
    fr: "Info Réseau Standard:"

Pci Card:
  command: "lspci | grep -i net"
  title:
    fr: "Cartes Pci pour Réseau:"

Pci Card Etend Infos:
  command: "lspci -k -nn | grep -A 3 -i net"
  title:
    fr: "Info Réseau Etendue Carte Pci"

Wifi force and Disponibility:
  command: "nmcli dev wifi"
  title:
    fr: "Info sur Wifi - Force et Disponibilité"

SSID Connection :
  command: "nmcli connection show"
  title:
    fr: "Info Connection SSID"

NetworkManager logs :
  command: "journalctl -u NetworkManager -rq -n12 --no-pager"
  title:
    fr: "Affichage des journaux pour NetworkManager"

test:
  command: "env"

"require" : prend un fichier ou un paquet "type" : peut être un appel interne à une class python (existe que "journald")

Custum Journal errors:
  object: "journald"
  type: "include"
  level: 3
  title:
    en: "Systemd log Errors, level:3 to 0"
    fr: "Erreurs log systemd, niveau: 3 à 0"
  require:
    - "systemd"
    - "/usr/bin/journalctl"

1- je n'ai ni print, ni wifi et ni bluetooth donc aucune remarque sur le plus important et le résultat...

2- python append_output_check()

  divider = "------------------------------------------------------------------------------------------------------- "
  # en plus compacte
  divider = "-" * 60

on peut ne rien afficher si pas de retour ?

  if not output:
      return

Ou ? si pas de retour un avertissement ?

    if not output:
        title = f"NO: {title}"

3- printer

cmd = ["journalctl -u NetworkManager | tail -10"]
# -q pour ne pas avoir les lignes login xxx
cmd = ["journalctl -u NetworkManager -qr -n 10"]

pas d’intérêt d'afficher le fichier si il est d'origine et fix bug "sudo cat" chez moi

process = subprocess.getoutput("pacman -Qii cups|grep -E 'MODIFIED.*cups-files.conf' -c")
if str(process) != "0":
    # fichier original modifié par user
    cmd = ['sudo cat /etc/cups/cups-files.conf']
    # FIX: add shell=True pour fonctionner
    process = subprocess.Popen(cmd, universal_newlines=True, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    append_output_check(str(process.stdout.read()), "Fonctionnement CUPS")
    process.kill()

4- scanner

scanimage pas installé obligatoirement ? donc ajout d'un simple try except fonctionne chez moi

try:
    # Affiche le nom du scanner =>scanimage -L
    process = subprocess.Popen(["scanimage", "-L"], universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    append_output_check(str(process.stdout.read()), "Affiche le nom du scanner")
    process.kill()

    # Fait un scan de test => scanimage -T
    process = subprocess.Popen(["scanimage", "-T"], universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    append_output_check(str(process.stdout.read()), "Test du scanner avec une image")
    process.kill()
except FileNotFoundError:
    append_output_check("", "Error: scanimage not installed")

pas plutôt 65-sane.rules le fichier ? et pas compris l’intérêt de l'afficher si utilisateur à jour ... (suis un noob !) j'avais dans le fichier .txt une erreur "fichier .rules non trouvé"

if not subprocess.getstatusoutput('ls /lib/udev/rules.d/*-sane.rules')[0]:
    cmd = ['cat /lib/udev/rules.d/*-sane.rules  >listereglessane.txt 2>&1']
    process = subprocess.getoutput(cmd)
    append_output_check(process, "Affiche tous les détails dans le fichier listereglescane.txt")
else:
    append_output_check("", "Erreur: paquet sane non installé")
olielvewen commented 2 years ago

@papajoker 

Je viens juste de voir ton rapport de bogue/demande générales.  

Je ne fais que le survoler et je vais y regarder en détail ce WE. 

Juste quelques remarques. 

Comme tu as pu le constater, tout est en "construction", je viens même de me rendre compte que je n'avais pas fais le .........Readme (pourtant je ne gatouille pas encore, du moins je crois). 

Seul le script pywificheck est presque complet (à mon sens !). Tous évoluerons suivant les remarques/besoins des utilisateurs.  

fbe m'avais proposé une version 0.03 du script avec un fichier json que j'avais refusé pour le motif qu'il faut le garder le plus simple possible cad une seule commande (cas d'un utilisateur auquel tu demandes 10 commandes tout en se doutant de ce qu'il fallait faire pour résoudre son problème mais il fallait le retour de ces 10 commandes. J'ai eu en tout et pour tout 3+2. D'où l'idée d'un seul script contenant tout. 

Je regarderai mieux ce que tu proposes et reconsidérerai ma position. A moins que j'ai mal compris.

Mème sudo (pour les commandes lancées en root) ne sont pas parfaites. Mais je pense avoir la solution, pas encore implantée. 

 on peut ne rien afficher si pas de retour ?

if not output:
    return

Ou ? si pas de retour un avertissement ?

 if not output:
     title = f"NO: {title}"

Je sais mais c'est en construction. Ils sont tous incomplets et loin d'être parfait.

Si on avait moyen de parler de tout ça en privé ? Avec signal ? Autre ? 

C'est compliqué en ce moment mais quand j'aurai fini ma formation Django, je vais m'y mettre,. J'ai pas mal de choses à faire comme un gros ménage avant d'attaquer quelque chose de plus gros et plus interressant.

En tout cas, merci pour l’intérêt et le coup de main.