2017-05-22 7 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')) 

問題イム有するのgit pushコマンドの実行ということですが、次のステップは、同様に、ユーザー名doesntの、およびそれ以降のすべてのコマンドを入力してください...任意のアイデア?

答えて

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

です...申し訳ありませんが、私はnoobです。これはクローニングプロセスのためだけですか?また、ビットバケットって何? – scoobz1234

+0

これは複製用ですが、 'git clone'コマンドを他のgitコマンドに置き換えることができます。 BitbucketはAtlassianの商業的なgitのように考えることができます。 –

+0

多少の間違いがありましたら、中括弧が好きではありませんか?私はPython 3を使用して私は追加する必要があります – scoobz1234

関連する問題