Git pull с использованием скрипта Python

1

Я пытаюсь написать функцию обновления для удаленной малины, к которой я не буду направлять acesss. Это означает, что у меня есть веб-сервер, который отправляет команду над почтовыми запросами. Когда я хочу внести изменения в код малины, я посылаю ему "обновление" в качестве ответа малины с вопросом "nextInstruction".

Теперь я хочу, чтобы малина была чистой и густой.

мой общий communication.py:

#code beforhand
elif (decodedresponse['responseInfo']['data'][1]['command'] == "update"):

        subprocess.call("./update.sh", shell=True)

        #update
        #os.system('sudo git clean -f -d')
        #os.system('git pull')
        #os.system('sudo reboot')
#code after

my update.sh:

#!/bin/bash

sudo git clean -f -d
git pull
sudo reboot

Проблема: если я выполняю update.sh, то он работает. Когда я запускаю скрипт python, видимо, он не получает ключи ssh в ~/.ssh.

Как я могу прикрепить ключ ssh к моему скрипту python? Я даже понимаю проблему? Есть ли более легкое решение для входа в мой удаленный ретранслятор gitlab?

Теги:
raspberry-pi
ssh-keys
gitlab

1 ответ

0
Лучший ответ

Я бы предпочел, чтобы мой скрипт bash запускал скрипт python и решал действие/задание с помощью кода выхода pythons. Вот пример.

Примечание: для вызова sudo может потребоваться ввести пароль, если вы не отредактируете файл sudoers (visudo) и не добавите исключение для этого пользователя, запускающего скрипт и git.

p.py (убедитесь, что файл py имеет атрибут shebang (первая строка) и chmod +x.

#!/usr/bin/python
# instead of  >>subprocess.call("./update.sh", shell=True)
exit(100)

update.sh

#!/usr/bin/bash

$(./p.py)
JOB=$?  # get pythons exitcode here

if [ $JOB -eq 100 ]; then
    echo "update"
elif [ $JOB -eq 50 ]; then
    echo "delete";
else
    echo "nothing"
fi
  • 0
    так что мой скрипт обновления следит за кодом выхода моего python skrict и запускает команды git при выходе? Может сработать, я пробую. Спасибо
  • 0
    работает! Большое спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню