2017-05-22 2 views
0

GUI 입력을 사용하여 git push/clone 프로세스를 자동화하는 첫 번째 프로그램을 만들려고합니다. 문제 메신저 데터미널 명령 시퀀스에 서브 프로세스 사용하기

"""GUI GIT Program""" 
#Import Statements 
from tkinter import * 
from tkinter import simpledialog 
from tkinter import messagebox 
import subprocess 
from time import sleep 

# set up the GUI 
root = Tk() 
w = Label(root, text="Git Handler") 
w.pack() 

# Welcome the User 
messagebox.showinfo("Welcome","This is a program to automate your Git stuff!") 

# solicit input 
user_name = simpledialog.askstring("Username:","What is your username?") 
password = simpledialog.askstring("Password","What is your password?",show="*") 
message_for_push = simpledialog.askstring("Push Message","What's your push message?") 

# do stuff with the data 
# call(["git","push"]) 
# sleep (2) 
# call([user_name]) 
# sleep (2) 
# call([password]) 
commands = ''' 
git push''' 
user_name 
password 


process = subprocess.Popen('/bin/bash', stdin=subprocess.PIPE, stdout=subprocess.PIPE) 
out, err = process.communicate(commands.encode('utf-8')) 
print(out.decode('utf-8')) 

는 자식 푸시 명령이 실행되지만 다음 단계는 사용자 이름 나던을 입력하는 것이, 모든 후속 명령뿐만 아니라 ... 어떤 아이디어?

답변

0

오랜 시간 동안 비슷한 문제가 생겨서 아래 코드 조각을 가지고 돌아 다닐 수있었습니다.

git-clone() { 
    print "Bitbucket checkout enter bitbucket user/pass." 
    echo -n "Bitbucket username:" 
    read bit_user 
    #echo "Bitbucket pass:" 
    read -s -p "Bitbucket Password:" bit_pass 
    su -c "cd /home/latlongo; git clone https://$bit_user:[email protected]/xyz.git -b your_branch" -m $1 
} 
+0

그래서 ... 죄송합니다. 나는 멍청한 놈입니다. 복제 과정을 위해서입니까? 또한, 비트 버킷은 무엇입니까? – scoobz1234

+0

예, 이것은 복제 용이지만 'git clone'명령을 다른 git 명령으로 바꿀 수 있습니다. Bitbucket은 Atlassian의 상업용 git처럼 생각할 수 있습니다. –

+0

몇 가지 오류가 발생하는 중괄호를 좋아하지 않아? 파이썬 3을 사용하여 메신저를 추가해야합니다. – scoobz1234