IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes POSIX Discussion :

Quelles vérifications suite à téléchargement via CVS [KSH]


Sujet :

Shell et commandes POSIX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut Quelles vérifications suite à téléchargement via CVS
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     check_xenocara() {
         RETVAL=""
         XDIR="/usr/xenocara"
         if [ $(ls $XDIR | wc -l) -ne 0 ]; then
             RETVAL=1
         else
             RETVAL=2
         fi
     }
     
     fetch_xenocara() {
         XDIR="/usr"
         while true; do
             echo -n "Fetch xenocara? (y/n) [y] "
             read answer
             case $answer in
             ""|y|Y)
                check_xenocara
            if [ "$RETVAL" -eq 1 ]; then
                echo "*** Error: xenocara is already there!"
            else
                    cd $XDIR && cvs -qd anoncvs@example.tld:/cvs checkout -rOPENBSD_6_3 -P xenocara
                    if [ $? -eq 0 ]; then
                        echo "==› Xenocara fetched successfully."
                    else
                        echo "*** Error: unable to fetch xenocara from CVS server! Try later."
                    fi
            fi
                return 0
                ;;
            n|N)
                    echo "GoodBye!"
                break
                ;;
              *)
                echo "$answer: is not allowed!"
                ;;
             esac
         done
     }
    Je dispose de deux fonctions:

    • check_xenocara: vérifie le contenu de destination /usr/xenocara.
    • fetch_xenocara: récupère le code source de xenocara.

    Je cherche à vérifier que tout le code source soit téléchargé si par mes gardes, je relance la deuxième fonction.

    Pour le moment, via la première, je vérifie simplement si le répertoire est vide ou pas.

    Je me suis dit, pourquoi ne pas réaliser un test sur le nombre de fichier mais invérifiable étant donné que celui-ci sera différent dans les prochaines versions.

    Une idée m'a tout de même traversée l'esprit, créer un fichier vide dans /usr/xenocara dès que le téléchargement est terminé et faire un test sur celui-ci.

    Qu'en pensez-vous ?

    En vous remerciant par avance de vos suggestions

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 673
    Par défaut
    Bonjour,

    Citation Envoyé par N_BaH
    on n'utilise pas ls dans un script.

    les noms des variables doivent ne pas être tout en majuscules.
    un fonction peut retourner un code d'erreur =>
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    shopt -s nullglob
     
    check()
    {
       local dir="$1/repertoire"
       declare -a listF=( "$dir/"* )
       ((${#listF[*]})) && return 0 || return 1
    }
     
    fetch()
    {
       dir=/chemin/abs
       if check "$dir"
       then
          : do stuff
       else
          : do not do stuff
       fi
    }
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    Merci N_BaH pour ces informations

    Je vais tester tout ça et regarder si cela fonctionne avec ksh.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 673
    Par défaut
    non, ça ne fonctionnera pas, en tout cas pas tel quel.

    pourquoi ksh ? quel ksh ? sur quelle distribution ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 345
    Par défaut
    Bonjour,
    Peut être avec find
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    check(){
      test "$(find $1 -empty)"
    }
    check "/usr/xenocara" && echo vide || echo plein
    Cordialement.

  6. #6
    Membre expérimenté

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Par défaut
    pourquoi ksh ?
    C'est mon choix
    quel ksh ?
    v5.2.14
    sur quelle distribution/système d'exploitation ?
    OpenBSD

    Je me doute bien qu'un code bash ne fonctionnera pas avec ksh.

    J'ai trouvé un exemple en ksh que je suis entrain de tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ -e $dir/* ] || [ -e $dir/.[!.]* ]
    on n'utilise pas ls dans un script.
    Pourquoi ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche d'action via CVS sous Eclipse
    Par apqmwnqmap dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 12/09/2012, 11h02
  2. Limiter le débit de téléchargement via PHP
    Par Lock622 dans le forum Langage
    Réponses: 3
    Dernier message: 26/06/2007, 18h47
  3. Récupération adresse de téléchargement via un edit
    Par BXDSPORT dans le forum Delphi
    Réponses: 2
    Dernier message: 30/04/2007, 06h55
  4. [Tableaux] Vérification de paramètres via un tableau
    Par Shandler dans le forum Langage
    Réponses: 14
    Dernier message: 20/01/2007, 00h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo