2017-10-18 6 views
0

Je veux créer une fonction de mise à jour pour mon script bash afin qu'à l'avenir toutes les modifications que je réserve au script qui est stocké sur github puissent être mises à jour par les utilisateurs finaux. Je ne trouve aucun exemple de fonction de mise à jour pour bash.comment créer une fucntion de mise à jour pour le script bash

si je fais juste une fonction comme ceci:

function update(){ 
    git clone https://path/to/my/repo.git 
} 

Il crée simplement une autre copie de mon repo dans le répertoire présent que je suis dans la section Ajout d'un chemin directement au script doesn travail t soit. . Comment puis-je y arriver?

+0

'fonction' et'() 'sont redondants. Il suffit d'écrire 'update() {...}'. (Omettre le mot «fonction».) –

+0

cet autre gars. Im dans mon dossier personnel. La mise à jour git ne fonctionne pas car 'update' n'est pas une commande git. @ William Pursell. Je ne peux pas enlever la fonction mot parce que c'est une fonction dans mon script. J'ai enlevé le mot fonction et la fonction de mise à jour n'a pas fonctionné. – Red5tar

+0

Ce que vous cherchez est probablement 'git pull'. Ou peut-être 'git push'. Pas vraiment clair ce que vous demandez réellement. –

Répondre

0

Cela devrait fonctionner, mais comme mentionné, ne pas être dev et utilisateur dans le même répertoire!

function update { 
    git pull 
} 

Finalement, si vous avez besoin d'effectuer une commande spécifique en cas d'une mise à jour a été disponible, vous pouvez utiliser quelque chose comme

function update { 
    if [[ "$(git pull|grep Already)" = "" ]]; then 
     echo "script has just been updated" 
    else 
     echo "no update was available" 
    fi 
} 

En outre, une chose qui peut être utile si vous faites cela est un fichier de paramètres séparés, que vous la source de votre script et « .gitignore » - afin que les gens ne doivent réinitialiser leurs réglages à chaque mise à jour

+0

Mieux vaut écrire des conditions telles que' if! git pull | grep -q Déjà; alors' – janos

0

Si la fonction de mise à jour est nécessaire pour que l'utilisateur final puisse mettre à jour une copie du script, cela pourrait être ce que vous cherchez.

update(){ 
    cd /tmp 
    git clone https://path/to/my/repo.git 
    # cd into the cloned directory if need to reach script 
    mv script.sh /to/location/of/old/script 
    # or 
    rm /location/of/old/script.sh 
    mv script.sh /to/location/of/old/script 
    } 
0

Peut-être que vous avez besoin git -f pull origin a_branch:tmp_branch de force de traction de nouveaux changements de a_branch à un tmp_branch tous si moi deuxième.

function update { 
    cd the/repo/path 
    git pull -f origin a_branch:tmp_branch 
}