Fabric: рдпрджрд┐ рдереНрд░реЗрдбрд┐рдВрдЧрдЧреНрд░реБрдк рд░рди рдореЗрдВ рд╕реНрд▓реАрдк рд╢рд╛рдорд┐рд▓ рд╣реИ рддреЛ рд╕реНрдерд╛рдиреАрдп рдЯрд░реНрдорд┐рдирд▓ рд╕реНрдЯрдб рдЕрд▓рдЧ рд╣реЛ рдЧрдпрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдЬреВрди 2018  ┬╖  22рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: fabric/fabric

рдореИрдВ рд╢реЗрд▓ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдбрд┐рдВрдЧ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЬрд┐рд╕рдореЗрдВ sleep , рд╕реНрдерд╛рдиреАрдп рдЯрд░реНрдорд┐рдирд▓ рдХреЛ stdin рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХреАрд╕реНрдЯреНрд░реЛрдХ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ) рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрдИ рдмрд╛рд░ рдЖрдЬрдорд╛рдпрд╛ рд╣реИ рдФрд░ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдереНрд░реЗрдбрд┐рдВрдЧ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ (рд╕реАрд░рд┐рдпрд▓ рд╕рдореВрд╣ рдареАрдХ рд╣реИрдВ)ред рд╕реНрд▓реАрдк рдХрдорд╛рдВрдб рдПрдХ-рд▓рд╛рдЗрдирд░ (рдкреНрд░рдердо рдХрдорд╛рдВрдб, рдордзреНрдп, рдЕрдВрддрд┐рдо) рдореЗрдВ рдХрд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рд▓рд╛рдЗрдирд░ рдореЗрдВ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо, рдпрд╛ рдбрдмрд▓ рдПрдореНрдкрд░рд╕реЗрдВрдб рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рднреА рдЖрджреЗрд╢ рдЕрдкреЗрдХреНрд╖рд╛рдиреБрд╕рд╛рд░ рдЪрд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЯрд░реНрдорд┐рдирд▓ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред

рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдкрд┐рдЫрд▓рд╛ рд░рди рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рддреЛ рдЯрд░реНрдорд┐рдирд▓ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдкреНрд░рдЬрдирди рдХрд░рдирд╛:

from fabric import ThreadingGroup as Group

# raise ValueError()
remotes = Group("host1.example.com", "host2.example.com")
result = remotes.run("echo 1; sleep 1; echo 2")

рдКрдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБред рдЗрд╕рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХреБрдЫ рдЯрд╛рдЗрдк рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдХреЛрдИ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ <ctrl>+c рдФрд░ reset<enter> рдЯрд╛рдЗрдк рдХрд░реЗрдВред рдЕрдкрд╡рд╛рдж рдХреЗ рдмрд╛рдж рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, raise рд▓рд╛рдЗрди рдХреЛ рдЕрдирдХрдореНрдореЗрдВрдЯ рдХрд░реЗрдВ, рдХреЛрдб рдЪрд▓рд╛рдПрдВ, рд▓рд╛рдЗрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ, рдФрд░ рджреЛ рдмрд╛рд░ рдФрд░ рдЪрд▓рд╛рдПрдВред рдкрд╣рд▓рд╛ рд╕рдлрд▓ рд░рди рдЯрд░реНрдорд┐рдирд▓ рдХреЛ рдЕрдЪреНрдЫреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ред рджреВрд╕рд░рд╛ stdin рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ sleep рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЦреЛрдЬ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЕрдиреНрдп рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╣реА рдкреНрд░рднрд╛рд╡ рд╣реЛред рдПрдХ рдореМрдХрд╛ рдпрд╣ рднреА рд╣реИ рдХрд┐ рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдореЗрд░реА рдорд╛рдлрд╝реАред

рдореЗрд░рд╛ рд╕реЗрдЯрдЕрдк:
рдЕрдЬрдЧрд░ 3.6.4
рдХрдкрдбрд╝рд╛ 2.1.3
OSX 10.13.5, Ubuntu 14.04 рд╕реЗ рдЬреБрдбрд╝ рд░рд╣рд╛ рд╣реИ

Bug Needs investigation

рд╕рднреА 22 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

#1814 рдХреЛ рд╕рдВрднрд╡ рджреВрд╕рд░реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдиреВрдиреА рдмрдЧ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдпреВрдирд┐рдХреНрд╕ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯрд░реНрдорд┐рдирд▓ рдкрд╛рдЗрдк рдПрдХ рд╕рд╛рде рдХрдИ рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛ (рдПрдПрд╕рдкреА # 1814 рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ) рдкрд╛рдЗрдк рд░рд╛рдЬреНрдп рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐, рдпрд╛ рдРрд╕рд╛ рдХреБрдЫред

рдХрд┐рд╕реА рдХрд╛рд░рдг/рд╕рдорд╛рдзрд╛рди рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдФрд░ рдЙрд▓рдЭрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рдЗрдирд╡реЛрдХ рд╕реНрддрд░ рдкрд░ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдиреЗ рдбреЛрдореЗрди рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВрдиреЗ рдЕрднреА рддрдХ рд╢реБрджреНрдз-рдЖрдордВрддреНрд░рдг рд╕рдВрджрд░реНрдн рдореЗрдВ рдереНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП pyinvoke/invoke#194 рджреЗрдЦреЗрдВ - рдпрд╣ рдПрдХ рдмрд╛рдд рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореИрдВ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдПрдХ рдЯрд┐рдХрдЯ рдкрд░ рд▓реЗ рдЬрд╛рдКрдВрдЧрд╛ рдФрд░ рдлреИрдмреНрд░рд┐рдХ "рдлрд┐рдХреНрд╕" рдПрдХ рдмрд╛рд░ рдлрд┐рдХреНрд╕ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рдХреЗ рдЗрдирд╡реЛрдХ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореИрдВ рдЙрдмрдВрдЯреВ 16.04.2 рдкрд░ рдЙрд╕реА рд╕реЗ рдЬреБрдбрд╝ рд░рд╣рд╛ рдерд╛ред

#1829 рдореЗрдВ рдЗрд╕реА рдореБрджреНрджреЗ рдХреА рдПрдХ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯред рдпрд╣ рдореЗрд░реЗ рдЕрдЧрд▓реЗ-рдмрдЧрдлрд┐рдХреНрд╕ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдореЗрдВ рд╣реИ рдФрд░ рдореИрдВ рдЙрд╕ рдЙрдореНрдореАрдж рдкрд░ рдЕрдЧрд▓реЗ рдУрдПрд╕рдПрд╕ рджрд┐рди (рд╕реЛрдо) рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред

рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (2.0 рд╢рд╛рдЦрд╛, рдкрд╛рдпрдерди 3.6.4, рдореИрдХреЛрдЬрд╝ 10.12) рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрд╕рдорд░реНрде рдерд╛ред рдкрд╣рд▓реЗ рдбрдмрд▓-рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдлрд┐рд░ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рдореЛрдЯ рдХреНрд▓рд╛рдЙрдб рдЗрдВрд╕реНрдЯреЗрдВрд╕, рдХреЛрдИ рдкрд╛рд╕рд╛ рдирд╣реАрдВ; рдореЗрд░рд╛ рдЯрд░реНрдорд┐рдирд▓ рдмрд╛рдж рдореЗрдВ рдареАрдХ рд╣реИред

рд▓рд┐рдирдХреНрд╕ рдХрдВрдЯреЗрдирд░ рдкрд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдУрдкреА рдореИрдХреЛрдЬрд╝ рдкрд░ рднреА рдерд╛, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдкрдбрд╝реЗрдЧрд╛ред рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд▓реВрдк рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдХрднреА-рдХрднреА рд░реЗрдкреНрд░реЛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ 2.1 рдореЗрдВ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрд╕реЗ 2.1 рдкрд░ рднреА рдЖрдЬрд╝рдорд╛рдКрдБрдЧрд╛, рдпрд╣ рдмрд╣реБрдд рд╣реА рдЕрд╕рдВрднрд╡ рд▓рдЧрддрд╛ рд╣реИред

@jensenak @nicktimko рдХреНрдпрд╛ рдЖрдк рдЗрд╕ 100% рд╕рдордп рдХрд╛ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ? 50%? 5%?

@bitprophet 2.1.3 рдкрд░ рдпрд╣ рдореЗрд░реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рдХрд╛рдлреА рдмрд╛рд░ рд╣реЛ рд░рд╣рд╛ рдерд╛ (> 80%, рдореИрдВ 6 рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рднреА рдЬрд╛ рд░рд╣рд╛ рдерд╛, 2 рдирд╣реАрдВ), рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореЗрд░реЗ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ # 1814 рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдХрдо рд╣реИ, рд╢рд╛рдпрдж 20%ред рдореИрдВ рдПрдХ рдбреЙрдХрд░ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╛ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдЧреНрд░рд╛рдВрдЯ рд╕реЗрдЯрдЕрдк рдХреЛ рд╡рд┐рдлрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@bitpropet рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП 100% рд╕рдордп рд░рд╣рд╛ рд╣реИред рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдХрдкрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ 2.0, 2.1 рдФрд░ 2.2 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдЪрд┐рдкрдХрд╛рдпрд╛ рд╣реИ рд╡рд╣ рд╣рд░ рдмрд╛рд░ рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдореИрдВ Ubuntu 14.04 рд░рд┐рдореЛрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдореИрдВ рдУрдПрд╕рдПрдХреНрд╕ (10.13) рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реВрдВред рд╢рд╛рдпрдж рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ? рд╣рд╛рд▓рд╛рдВрдХрд┐ @nicktimko OSX рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдерд╛ред

рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдореЗрд░реЗ рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдореЗрдВ pip freeze рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

asn1crypto==0.24.0
bcrypt==3.1.4
cffi==1.11.5
cryptography==2.3
fabric==2.2.1
idna==2.7
invoke==1.1.0
paramiko==2.4.1
pyasn1==0.4.4
pycparser==2.18
PyNaCl==1.2.1
six==1.11.0

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЗрди рд╕рднреА рдХреЛ рдХрдкрдбрд╝реЗ 2.2 рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рди рджрд┐рдЦреЗрдВрдЧреЗред

рдЕрдЧрд░ рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рддреИрдпрд╛рд░ рд╣реВрдВред рдмрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдФрд░ рдХрд╣рд╛рдБ рджреЗрдЦрдирд╛ рд╣реИред

рдореБрдЭреЗ рдХрд┐рд╕ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП; рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдлреНрд░реАрдЬ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛, рдЖрдк рдПрдХ рдФрд░ рдЬрдореЗ рд╣реБрдП reqs.txt рднреА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

@nicktimko @jensenak рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд░рд╣реВрдБрдЧрд╛; 20% рдкрд░ рдореИрдВрдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реЛрддрд╛ред рдореЗрд░реЗ рд░рд┐рдореЛрдЯ рдореИрдХ рдФрд░ рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдбреЗрдмрд┐рдпрди рд░рд╣реЗ рд╣реИрдВ, рдореИрдВ рдЙрдмрдВрдЯреВ рдЯреНрд░рд╕реНрдЯреА рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ (рдЬреЛ рдЕрдЬреАрдм рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣реЗ, рдпрд╣ рдкреВрд░реА рдмрд╛рдд рдЕрдЬреАрдм рд╣реИред)

рд╕рд╛рде рд╣реА, рдЖрдкрдХрд╛ рд╕реНрдерд╛рдиреАрдп рдЦреЛрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреНрдпрд╛ рд╣реИ? рдореЗрд░рд╛ tmux рдХреЗ рдЕрдВрджрд░ (рдлрд┐рд░ рд╕реЗ, macOS 10.12) рдмрд┐рд▓рд┐рди Terminal.app рдкрд░ zsh рд╣реИред рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдореЗрдВ рдЙрд╕ рдХреЛрдг рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред

рдЕрд╣рд╛ред рдпрд╣ рдмреИрд╢ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ! рдЕрднреА рднреА tmux рдХреЗ рдмрд╛рд╣рд░ zsh рдХреЗ рддрд╣рдд рд░рд┐рдкреНрд░реЛ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛, рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рдХреНрд╖рдг рдореИрдВ рдмреИрд╢ рдХреЗ рддрд╣рдд рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рддреБрд░рдВрдд рд▓рдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдорд┐рд▓рддрд╛ рд╣реИред tmux рдХреЗ рдЕрдВрджрд░ рдбрд┐рдЯреНрдЯреЛ, рдЗрд╕рд▓рд┐рдП tmux рдХрд╛ рдХреЛрдИ рдЕрд╕рд░ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдПрдХ рд╢реЗрд▓ рдЪреАрдЬрд╝ рд╣реИред

_рдХреНрдпреЛрдВ_ рдпрд╣ рдмреИрд╢ рдмрдирд╛рдо zsh рдХреЗ рддрд╣рдд рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧрд╛, рдореБрдЭреЗ рддрддреНрдХрд╛рд▓ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ (рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд▓рдЧрддрд╛ рд╣реИ) рд╢рд╛рдпрдж рдореЗрд░реЗ zsh dotfiles рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд░реЛрдХ рд░рд╣рд╛ рд╣реИ? рдЦреЛрджрдирд╛ рд╣реЛрдЧрд╛ ... рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд╛рдЗрдерди рдкрдХреНрд╖ рдкрд░ рд╕рдорд╛рдзрд╛рди рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рдЬрдирди рддрдм рднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореЗрд░реЗ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЗ sshd рдХреЛ рдХрдИ рдмрд╛рд░ рд╕рдорд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдирд╣реАрдВ рд╣реИред рддреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреВрд░ рдХрд╛ рдЕрдВрдд рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ред

рд╕рд╛рде рд╣реА, рдореИрдВрдиреЗ "рдкрд┐рдЫрд▓реЗ рд░рди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХреЗрд╡рд▓ рдЕрдЧрд▓реЗ рд░рди рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреЛрдЯ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реБрдЖ; рдореБрдЭреЗ рд╣рд░ рдмрд╛рд░ рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИред

Moar: рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ sleep рд╣рдЯрд╛ рджрд┐рдпрд╛; рдореИрдВ рдЕрднреА рднреА рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдм рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд░реБрдХ-рд░реБрдХ рдХрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓реВрдк рдореЗрдВ рд░рд┐рдкреНрд░реЛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рдм рд╣рд╛рде рд╕реЗ рдкреНрд░рдЬрдирди рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреА рдХрдо рд╕рдВрдЦреНрдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдШрдЯрдирд╛ рдХрд╛ рд╕рд╣реА% рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдорд╛рдкрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред)

рдпрд╣ рднреА рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХрдо рдЕрдЬреАрдм-рд╕реЗ-рдмрд┐рд▓реНрд▓реА рдЯреНрд░рд┐рдЧрд░, рдмреЗрд╣рддрд░ред рдпрд╣ рдЧрдВрдз рдХреА рддрд░рд╣ рд╣реИ _ рдЪрд╛рд╣рд┐рдП_ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА, рдЧреВрдВрдЧрд╛ рдереНрд░реЗрдбрд┐рдВрдЧ рдЧрд▓рддреА рд╣реЛ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рджреВрд░рд╕реНрде рдпрд╛ рд╕реНрдерд╛рдиреАрдп рдЫреЛрд░ рдкрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЪреАрдЬ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧреА, рдЬреЛ рдХрд┐ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ (рдпрд╛ w/e) рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ pyinvoke/invoke#552 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬреЛ рдЗрдирд╡реЛрдХ рдХреЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдереНрд░реЗрдб рд╕рдмрдХреНрд▓рд╛рд╕ (рдпрд╣рд╛рдВ рдереНрд░реЗрдбрд┐рдВрдЧ рдЧреНрд░реБрдк рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд) рдХреЗ рд▓рд┐рдП рдЙрдмрд╛рд▓ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрднрд╡рддрдГ рдереНрд░реЗрдб-рдбреЗрде рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджреЗрддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ (рдЗрд╕рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрдзрд╛рд░, pyinvoke/invoke#553, рдПрдХ рдЗрдВрд╕реНрдЯрд╛-рдорд░реНрдЬ рдирд╣реАрдВ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдЬреАрдм рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рд╣рдореЗрдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ, рдЗрддрдирд╛ рдЧрд▓рдд рдорд┐рд▓ рдЧрдпрд╛ рд╣реЛрдЧрд╛) рдФрд░ рдлрд┐рд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрдирд╛рддрд╛ рд╣реИ рдпрд╣ рд▓рдХреНрд╖рдг рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдиреАрдВрдж рд╣рдЯрд╛ рджреА, рджреЗрдЦреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛; рдореИрдВ рдЕрднреА рднреА рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдм рдереЛрдбрд╝рд╛ рдФрд░ рд░реБрдХ-рд░реБрдХ рдХрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ

рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЗрд╕реЗ рдЦрд░рд╛рдм рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдХреБрдЫ рдмрд╛рд░ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдкрд░ рдЕрдЪреНрдЫреА рдкрдХрдбрд╝ рд░рдЦрддреЗ рд╣реИрдВ

рдореИрдВрдиреЗ рдЖрдЬ рджреЗрдЦрд╛ рдХрд┐ рдореИрдВ рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рдЕрдкрд╡рд╛рдж рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рднреА рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ ... рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рддрдм рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред :/

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдБ рдмреИрд╢ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБред рдЕрдЪреНрдЫрд╛ рдЦреЛрдЬред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдиреАрдВрдж рдХреЗ рдмрд┐рдирд╛ рд░реБрдХ-рд░реБрдХ рдХрд░ рд╣реЛрддреА рд╣реИ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИред

рдЖрдк рдРрд╕рд╛ рдХрд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдЗрд╕реЗ рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдмрд╣реБрдд рд░реБрдХ-рд░реБрдХ рдХрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдиреАрдВрдж рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрд╛рд░ рдЖрддреА рд╣реИред рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдкреНрдпрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрд╕ рдЗрдирд╡реЛрдХ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд░рд┐рдкреЛрд░реНрдЯрд░ рдПрдХ рд▓рдХреНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рдЯрд░реНрдорд┐рдирд▓ рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ; рд▓реЗрдХрд┐рди рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдореИрдВ _that_ рд▓рдХреНрд╖рдг рдХреЛ рдЙрд╕рдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде, рдмреИрд╢ рдХреЗ рддрд╣рдд рднреА рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдлрд┐рд░ рднреА рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдореВрд▓ рдХрд╛рд░рдг рд╕рдорд╛рди рд╣реИ (рдереНрд░реЗрдб рдбреЗрде рдФрд░ рд╕реНрдЯрдб рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ, рдпрд╛ рд╢рд╛рдпрдж рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рд▓рд╛рдЗрдирд╡рд╛рдЗрдЬ рдмрдлрд░рд┐рдВрдЧ рдкрд░ рд╡рд╛рдкрд╕ рд╕реЗрдЯ рдХрд░реЗрдВ)ред

рд░реЗрдкреЛ рдорд╛рдорд▓реЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдпрд╣рд╛рдВ рдмрддрд╛рдП рдЧрдП рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдХреЗ рд╕реНрдкреЙрдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛:

  • ExceptionHandlingThread.is_dead рдмрд┐рдЯ рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рдЖ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдХреБрдЫ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдереНрд░реЗрдб рдореЗрдВ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ рдФрд░ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдорд╛рдорд▓рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рдирд╣реАрдВ рд╣реИред is_dead рд╕рднреА 3 рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдзрд╛рдЧреЗ (рд╕реНрдЯрдбрд┐рди/рдЖрдЙрдЯ/рдЧрд▓рддреА) рдХреЗ рд▓рд┐рдП False рдЬрдм рдореИрдВ рдЗрд╕рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред
  • рдпрд╣ рджрд╛рд╡рд╛ рдХрд┐ рд╣рдо рдЙрдк-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдареАрдХ рд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ 'stdin рдирд┐рд╢рд╛рди рдХреЗ рдХрд░реАрдм рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ; рдЕрдЧрд░ рд╡рд╣ рдЕрдм-рдореГрдд рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдпрд╛ рдХреБрдЫ рдФрд░ рд╕реЗ рдЬреБрдбрд╝реЗ рдирд┐рдпрдВрддреНрд░рдг рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд╕реНрдЯрдб рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ ...? (рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреЗрд╣рддрд░ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡реИрд╕реЗ рднреА рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред)

    • рдлреИрдмреНрд░рд┐рдХ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХреЛрдИ рд╕реНрдерд╛рдиреАрдп рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВ рд╣реИ рдФрд░ рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛ рдХреЛрдИ рд╕реАрдзрд╛ рдкрд╛рд╕рдереНрд░реВ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

    • рдорддрд▓рдм рд╕рдорд╕реНрдпрд╛ рдХреБрдЫ рдФрд░ рд╣реЛрдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ?


рдПрдХ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ ... рдмрдЧ рджрд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж рдЯрд░реНрдорд┐рдирд▓ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ? рдЪрд▓ рд░рд╣рд╛ stty -a рдмрдЧ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдФрд░ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рдмреИрд╢ рдХреЗ рддрд╣рдд, рдЬреЛ рдЕрдВрддрд░ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рд╡реЗ рд╣реИрдВ:

  • lflags : рдмрдЧ-рдЖрдЙрдЯ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ -icanon , -echo , -pendin (рдмрдирд╛рдо рдирд┐рдпрдорд┐рдд рдЕрд╡рдзрд┐ рдЬрд╣рд╛рдВ рдЙрди рд╕рднреА рдореЗрдВ рдЛрдг рдЪрд┐рд╣реНрди рдирд╣реАрдВ рд╣реИ)ред рдЧреВрдБрдЬрдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред
  • iflags : рдмрдЧ-рдЖрдЙрдЯ рдореЗрдВ -ixany рдФрд░ ignpar (рдЦрд░рд╛рдм рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреБрдЫ рд╕реЗрдЯ рд╣реЛрдиреЗ рдХрд╛ рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдг, рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)
  • oflags рдФрд░ cflags рд╕рдорд╛рди, рдЬреИрд╕рд╛ рдХрд┐ cchars (рдпрджрд┐ рдирд┐рдпрдВрддреНрд░рдг рд╡рд░реНрдг рдмрджрд▓ рдЧрдП рдереЗ рддреЛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдЬреАрдм рд▓рдЧреЗрдЧрд╛ ...)

man stty :

  • icanon ERASE рдФрд░ KILL рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ; рд╢рд╛рдпрдж рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдХреНрдпреЛрдВ рд╕реЗрдЯ рд╣реИ рдпрд╛ рдЕрдирд╕реЗрдЯ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)
  • echo рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреВрдВрдЬрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрдЧ рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдореБрджреНрджрд╛ рд╣реИред
  • pendin рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрдирдкреБрдЯ (рд╕реНрдЯрдбреАрди рдорд╛рдирддреЗ рд╣реБрдП) рдПрдХ рд╡рд┐рд╣рд┐рдд рд╕реНрд╡рд┐рдЪ рдХреЗ рдмрд╛рдж рд▓рдВрдмрд┐рдд рд╣реИ (рдФрд░ рдЪреВрдВрдХрд┐ icanon рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдлрд╝реНрд▓рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ... рд╣рд╛рдБ) рдФрд░ рдЬрдм рдХреЛрдИ рдкрдарди рд▓рдВрдмрд┐рдд рдпрд╛ рдЕрдзрд┐рдХ рдЗрдирдкреБрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдлрд┐рд░ рд╕реЗ рдЗрдирдкреБрдЯ рд╣реЛрдЧрд╛ рдЖрддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдкрд░ рдкрд░реЗрд╢рд╛рди рд╣реЛрддрд╛ рд╣реИ (рдореИрдВ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛, рдпрджрд┐ рдХреБрдЫ рднреАред)
  • ixany рдХрд┐рд╕реА рднреА рдЪрд░рд┐рддреНрд░ рдХреЛ 'рдЖрдЙрдЯрдкреБрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ' рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдФрд░ рдЬрдм рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ START рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдареАрдХ рд╣реИ?)
  • ignpar рдЕрд░реНрде рд╣реИ рд╕рдорддрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рд╡рд░реНрдгреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ (рдпрд╛ рдЕрдирд╕реЗрдЯ рдХрд░рдирд╛, рдЕрдирджреЗрдЦрд╛ рди рдХрд░рдирд╛)ред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рдХреБрдЫ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп 'рдореЛрдб' рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рд╣рдо рд╡рд░реНрдг-рдмрдлрд╝рд░реНрдб рд░реАрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрдбрд┐рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдореИрд╢ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдмрд╛рд░ рдореЗрдВ 1 рдмрд╛рдЗрдЯ рдкрдврд╝ рд╕рдХреЗрдВред

рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рддрд╣рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ (рддрд░рд╣ рдХрд╛ ...), рдФрд░ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛; рд▓реЗрдХрд┐рди рдкреНрд░рд╢реНрди рдореЗрдВ рдХреЛрдб рдкрдврд╝рдирд╛ (рдХреНрдпреЛрдВрдХрд┐ рдЗрдирд╡реЛрдХ рдкреИрдЪ рдореЗрдВ рднреА рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреБрди: рдереНрд░реЗрдб рдореМрдд), рдореЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ _ рдЪрд╛рд╣рд┐рдП_ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджрд┐рдП рдмрд┐рдирд╛ рдХрд┐ рд╣рдо рдЙрд╕ рд▓реВрдк рд╕реЗ рдХреИрд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдм рдЗрд╕реЗ рддреАрди рдмрд╛рд░ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ред

рдорд╛рдЗрдирд░: рдХреЗрд╡рд▓ stty echo рдХреЛ echo рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдЯрд░реНрдорд┐рдирд▓ рдХреЛ 'рдареАрдХ' рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ; рднрд▓реЗ рд╣реА icanon , pendin рдЖрджрд┐ рдЕрднреА рднреА рд╕реЗрдЯ рди рд╣реЛрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЗ, рдореБрдЭреЗ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ред

рдареАрдХ рд╣реИ! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдордЭ рд▓рд┐рдпрд╛, рдЬрдмрдХрд┐ рдЙрд╕ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдШреВрд░рддреЗ рд╣реБрдП: рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рд╡рд░реНрддрдорд╛рди рдЯрд░реНрдорд┐рдирд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмреНрд▓реЙрдХ рдХреЗ рдХрд░реАрдм рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╣рдо _рджреЛ рдЕрд▓рдЧ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдереНрд░реЗрдб_ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЗрд╕ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рдХреА рдЕрдкрдиреА _рд╕реНрд╡рдпрдВ рдХреЙрдкреА_ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ!

рдФрд░ рдЗрдирд╡реЛрдХ рдореЗрдВ, рдЬрдмрдХрд┐ рд╣рдо рдереНрд░реЗрдбрд╕реЗрдл рд╣реЛрдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрдиреЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЖрдИрдУ рдереНрд░реЗрдбреНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ; "рдереНрд░реЗрдб-рд╕реЗрдлреНрдЯреА" рдХрд╛ 99% рдХреЗрд╡рд▓ рдлреИрдмреНрд░рд┐рдХ 1 рдХреЗ рднрдпрд╛рдирдХ рд╡реИрд╢реНрд╡рд┐рдХ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрдЬрд╛рдп рд╕реНрд╡-рдирд┐рд╣рд┐рдд рд╡рд╕реНрддреБ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рддреЛ рд░рд╛рдЬреНрдп-рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдмрд┐рдЯ рдХрднреА рднреА рдЕрдкрдиреЗ рд╕рд╛рде рд╕рдорд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ "рд░рд╛рдЬреНрдп" рд╕рдЪрдореБрдЪ рдирд┐рдпрдВрддреНрд░рдг рдЯрд░реНрдорд┐рдирд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП ... рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ ...)ред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ (рд▓рдЧрднрдЧ) 100% рд╕рд┐рджреНрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдереНрд░реЗрдб рдЬреЛ рд╕реЗрдХреЗрдВрдб рд░рди рдХрд░рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдХрдВрдЯреНрд░реЛрд▓рд┐рдВрдЧ рдЯрд░реНрдорд┐рдирд▓ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдХреЛ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд░рдиреЗ рдХреА рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ _after_ рдкрд╣рд▓рд╛ рдереНрд░реЗрдб рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдХреИрд░реЗрдХреНрдЯрд░-рдмрдлрд░ рдореЛрдб рдореЗрдВ рд╕реЗрдЯ рдХрд░ рдЪреБрдХрд╛ рд╣реИ; рдлрд┐рд░, рдпрджрд┐ рд╡рд╣ рджреВрд╕рд░рд╛ рдзрд╛рдЧрд╛ рднреА _finishes_ рджреВрд╕рд░рд╛ (рдлрд┐рд░ рд╕реЗ, рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ) рдпрд╣ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдХреЛ "рдмрд╣рд╛рд▓" рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рдзрд╛рдЧреЗ рдХреА рдмрд╣рд╛рд▓реА рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░рддрд╛ рд╣реИред

рдкреБрд╖реНрдЯрд┐ рдХреА рдХрд┐ рдИрд╕реАрдПрдЪрдУ рдзреНрд╡рдЬ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧреИрд░-рдкреНрд░рдердо рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рджреНрд╡рд╛рд░рд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдлрд┐рд░ рдЙрд╕реА рджреНрд╡рд╛рд░рд╛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдПрдХ рд╕рдорд╛рдзрд╛рди рдкрд░ рдХрд╛рдо рдХрд░рдирд╛, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕реЗрдЯрдмреНрд░реЗрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реИ, рдФрд░ рд╕реНрдиреИрдкрд╢реЙрдЯ-рд╕рдВрд╢реЛрдзрд┐рдд-рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдиреГрддреНрдп рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдиреЛ-рдСрдк"ред

рдЗрд░рд╛рджрд╛ рдкреНрд░рднрд╛рд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдореВрд▓реА рдХреНрд▓реАрдирд░ рд╣реИ (рдХрднреА рд╕реЗрдЯрдмреНрд░реЗрдХ> 1 рдмрд╛рд░ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ) рдФрд░ рдПрдХ рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рдмреЗрд╡рдХреВрдл рдлрд┐рдХреНрд╕ рд╣рдореЗрд╢рд╛ рдИрд╕реАрдПрдЪрдУ, рдЖрджрд┐ рдХреЛ "рдЪрд╛рд▓реВ" рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдЬреЛ рдЙрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ рдЬрд╣рд╛рдВ рдкреНрд░рд╢реНрди рдореЗрдВ рдзрд╛рд░рд╛ рд╣реИ рдЯреНрдЯреА-рд▓рд╛рдЗрдХ рд▓реЗрдХрд┐рди _рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧреВрдВрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдерд╛ред (рдЕрд╕рдВрднрд╡, рдирд┐рд╢реНрдЪрд┐рдд, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЕрд╕рдВрднрд╡ рдирд╣реАрдВред)

рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдХреЗрд╡рд▓-рдЖрдордВрддреНрд░рдг рдореБрджреНрджрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЙрд╕ рдЯреНрд░реИрдХрд░ рдкрд░ рдПрдХ рдШрд░ рджреЗрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ - рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ https рдкрд░ рдкреЙрдк

рдХреНрд░рд┐рд╕реНрдЯрд▓ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд╛рд░ рдпрд╣ рддрдп рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ 1.0.2 / 1.1.1 (рдФрд░ рд╕рдВрднрд╡рдд: 1.2.0 рдЕрдЧрд░ рдореИрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реВрдВ) рдореЗрдВ рдмрд╛рд╣рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ _no_ рдлреИрдмреНрд░рд┐рдХ рдЕрдкрдЧреНрд░реЗрдб рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреЗрд╡рд▓ рдЖрд╣реНрд╡рд╛рди рдХрд░реЗрдВред

@bitprophet рдмрдврд╝рд┐рдпрд╛! рдпрд╣ рдЗрдирд╡реЛрдХ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :)
рдЖрдкрдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Grazfather picture Grazfather  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jamesob picture jamesob  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yuvadm picture yuvadm  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zhaoguixu picture zhaoguixu  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

peteruhnak picture peteruhnak  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ