2016-06-14 17 views
9

Tôi có một git hook đang chạy bất cứ khi nào một số cam kết vào kho lưu trữ cục bộ của họ.Làm thế nào để biết nếu một git hook đang được gọi từ không trong terminal/dòng lệnh

Một số người cam kết từ nhà ga và một số người cam kết từ SourceTree hoặc SmartGit hoặc một số ứng dụng của bên thứ ba khác.

SourceTree hoạt động khác khi nói đến móc. Ví dụ, lỗi là màu đỏ theo mặc định, và đầu vào người dùng dường như không được hỗ trợ vì vậy tôi cần phải thay đổi kịch bản python của tôi tùy thuộc vào việc người dùng có cam kết từ SourceTree hoặc SmartGit, v.v.

Có cách nào không để làm điều này trong kịch bản của tôi?

+0

Bạn đã thử so sánh các biến môi trường bằng cách sử dụng 'printenv'? – Dario

+0

@Dario Không, tôi sẽ cố gắng và liên hệ lại với bạn. – Ogen

+0

@Dario Tôi đang sử dụng 'print os.environ'. Đó là những gì bạn có trong tâm trí? Tôi phải xem xét điều gì từ đầu ra này chính xác? – Ogen

Trả lời

5

Tôi đã có thể giải quyết vấn đề bằng mã python này. Nó chỉ đơn giản là kiểm tra các biến môi trường cho bất kỳ lần xuất hiện nào của các trình khách git của bên thứ ba. Tôi không biết nếu đó là giải pháp tốt nhất hoặc nếu nó sẽ làm việc tất cả các thời gian - nhưng nó đáp ứng nhu cầu của tôi cho bây giờ.

is_terminal = True 

for key in os.environ: 
    if "SourceTree" in os.environ[key] or "SmartGit" in os.environ[key]: 
     is_terminal = False 
     break 
Các vấn đề liên quan