рдЬрдм рдореИрдВ рдиреИрдиреЛ рдХреЗ рд╕рд╛рде open_shell() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрд░ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВред рдЬрдм рдореИрдВ рдКрдкрд░ рддреАрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓рд╛ рдкреНрд░реЗрд╕ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдкреНрд░реЗрд╕ рдореБрдЭреЗ 'рдП' рдЕрдХреНрд╖рд░ рджреЗрддрд╛ рд╣реИ
рдпрд╣ рдореБрджреНрджрд╛ рд╡рд┐рдо рдХреЗ рд╕рд╛рде рднреА рд╕рд╛рдордиреЗ рдЖрдпрд╛ред
рдЬрдм рдореИрдВ рдиреАрдЪреЗ рд╢реЛрдХреА-рдП рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЧрддрд┐ рдореЗрдВ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Fabric3 1.14.post1 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
## When Ran with open_shell(command='nano /home/pi/.piHoleRestore/01-pihole.conf.old')
# THen I exit the Nano Editor
pi<strong i="10">@raspberrypi</strong>:~$ showkey -a
^[ 27 0033 0x1b # Up First arrow Key Press
[ 91 0133 0x5b # Up Second Arrow Press
A 65 0101 0x41 #
^[ 27 0033 0x1b # Down First arrow Key Press
[ 91 0133 0x5b # Down Second Arrow Press
B 66 0102 0x42 #
^[ 27 0033 0x1b # Left First arrow Key Press
[ 91 0133 0x5b # Left Second Arrow Press
D 68 0104 0x44 #
^[ 27 0033 0x1b # Right First arrow Key Press
[ 91 0133 0x5b # Right Second Arrow Press
C 67 0103 0x43 #
# WHen ran with normal ssh session
pi<strong i="11">@raspberrypi</strong>:~$ showkey -a
^[[A 27 0033 0x1b # Up Arrow
91 0133 0x5b
65 0101 0x41
^[[D 27 0033 0x1b # Down Arrow
91 0133 0x5b
68 0104 0x44
^[[B 27 0033 0x1b # Left Arrow
91 0133 0x5b
66 0102 0x42
^[[C 27 0033 0x1b # Right Arrow
91 0133 0x5b
67 0103 0x43
рджреЗрдЦреЗрдВ https://github.com/fabric/fabric/issues/196 , рдпрд╣ рдПрдХ рдЬреНрдЮрд╛рдд (рдФрд░ IIRC) рд╣реИ
рдбреА-рдкреНрд░рд╛рдердорд┐рдХрддрд╛?) рдореБрджреНрджрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣реЛрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рд▓реЗрдЦрд┐рддред рдореБрдЭреЗ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрдж рдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрддрд╛ рд╣реИред
16 рдлрд░рд╡рд░реА, 2018 11:48 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, "рдЬреЙрди рдореИрдХрдЧреНрд░рд╛рде" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:
рдЬрдм рдореИрдВ рдиреИрдиреЛ рдХреЗ рд╕рд╛рде open_shell() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрд░ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВред рдЬрдм рдореИрдВ рдКрдкрд░ рддреАрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдХреЗ рд▓рд┐рдП
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рдкрд╣рд▓рд╛ рдкреНрд░реЗрд╕ рдФрд░ рджреВрд╕рд░рд╛ рдкреНрд░реЗрд╕ рдореБрдЭреЗ рджреЗрддрд╛ рд╣реИ
рдЕрдХреНрд╖рд░ рдЕ'рдпрд╣ рдореБрджреНрджрд╛ рд╡рд┐рдо рдХреЗ рд╕рд╛рде рднреА рд╕рд╛рдордиреЗ рдЖрдпрд╛ред
рдЬрдм рдореИрдВ рд╢реЛрдХреА-рдП рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЧрддрд┐ рдореЗрдВ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛
рдиреАрдЪреЗредрдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Fabric3 1.14.post1 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
рдЬрдм open_shell(command='nano /home/pi/.piHoleRestore/01-pihole.conf.old') рдХреЗ рд╕рд╛рде рджреМрдбрд╝реЗрдВ
рддрдм рдореИрдВ рдиреИрдиреЛ рд╕рдВрдкрд╛рджрдХ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реВрдВ
рдкреАрдЖрдИ@рд░рд╛рд╕реНрдкрдмреЗрд░реАрдкреА :~$ рд╢реЛрдХреА-рдП
^[ 27 0033 0x1b # рдКрдкрд░ рдкрд╣рд▓рд╛ рддреАрд░ рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ
[91 0133 0x5рдмреА # рдКрдкрд░ рджреВрд╕рд░рд╛ рддреАрд░ рдкреНрд░реЗрд╕
рдП 65 0101 0x41 #
^[ 27 0033 0x1b # рдбрд╛рдЙрди рдлрд░реНрд╕реНрдЯ рдПрд░реЛ рдХреА рдкреНрд░реЗрд╕
[91 0133 0x5рдмреА # рдбрд╛рдЙрди рд╕реЗрдХреЗрдВрдб рдПрд░реЛ рдкреНрд░реЗрд╕
рдмреА 66 0102 0x42 #
^[ 27 0033 0x1b # рдмрд╛рдпрд╛рдВ рдкрд╣рд▓рд╛ рддреАрд░ рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ
[91 0133 0x5рдмреА # рд▓реЗрдлреНрдЯ рд╕реЗрдХреЗрдВрдб рдПрд░реЛ рдкреНрд░реЗрд╕
рдбреА 68 0104 0x44 #
^[ 27 0033 0x1b # рджрд╛рдпрд╛рдВ рдкрд╣рд▓рд╛ рддреАрд░ рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ
[91 0133 0x5рдмреА # рд░рд╛рдЗрдЯ рд╕реЗрдХреЗрдВрдб рдПрд░реЛ рдкреНрд░реЗрд╕
рд╕реА 67 0103 0x43 #рдЬрдм рд╕рд╛рдорд╛рдиреНрдп ssh рд╕рддреНрд░ рдХреЗ рд╕рд╛рде рднрд╛рдЧрд╛
рдкреАрдЖрдИ@рд░рд╛рд╕реНрдкрдмреЗрд░реАрдкреА :~$ рд╢реЛрдХреА-рдП
^[[рдП 27 0033 0x1рдмреА # рдЕрдк рдПрд░реЛ
91 0133 0x5b
65 0101 0x41
^[[рдбреА 27 0033 0x1рдмреА # рдбрд╛рдЙрди рдПрд░реЛ
91 0133 0x5b
68 0104 0x44
^[[рдмреА 27 0033 0x1рдмреА # рдмрд╛рдпрд╛рдВ рддреАрд░
91 0133 0x5b
66 0102 0x42
^[[рд╕реА 27 0033 0x1рдмреА # рджрд╛рдпрд╛рдВ рддреАрд░
91 0133 0x5b
67 0103 0x43-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/fabric/fabric/issues/1719 , рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ABUzl55nzK_drLV4Q8bYs9Azzn1UXZHzks5tVnY2gaJpZM4SJN4T
.
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрд╕ рдЕрдВрдХ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВ, рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд, рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рдерд╛
рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд▓рд╛рдЗрди рд╣реИред
19 рдлрд░рд╡рд░реА, 2018 рдХреЛ рд╕реБрдмрд╣ 10:56 рдмрдЬреЗ, "рдмреНрд░рд╛рдпрди рдкреАрдЯрд░рд╕рди" [email protected] рдиреЗ рд▓рд┐рдЦрд╛:
https://github.com/fabric/fabric/issues/196 рджреЗрдЦреЗрдВ, рдпрд╣ рдПрдХ рдЬреНрдЮрд╛рдд (рдФрд░ .) рд╣реИ
рдЖрдИрдЖрдИрдЖрд░рд╕реА рдбреА-рдкреНрд░рд╛рдердорд┐рдХрддрд╛?) рдореБрджреНрджрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рд╣реЛрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ред рдореБрдЭреЗ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрдж рдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрддрд╛ рд╣реИред16 рдлрд░рд╡рд░реА, 2018 11:48 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, "рдЬреЙрди рдореИрдХрдЧреНрд░рд╛рде" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:
рдЬрдм рдореИрдВ рдиреИрдиреЛ рдХреЗ рд╕рд╛рде open_shell() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрд░ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВред рдЬрдм рдореИрдВ рдКрдкрд░ рддреАрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдХреЗ рд▓рд┐рдП
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рдкрд╣рд▓рд╛ рдкреНрд░реЗрд╕ рдФрд░ рджреВрд╕рд░рд╛ рдкреНрд░реЗрд╕ рдореБрдЭреЗ рджреЗрддрд╛ рд╣реИ
рдЕрдХреНрд╖рд░ рдЕ'рдпрд╣ рдореБрджреНрджрд╛ рд╡рд┐рдо рдХреЗ рд╕рд╛рде рднреА рд╕рд╛рдордиреЗ рдЖрдпрд╛ред
рдЬрдм рдореИрдВ рд╢реЛрдХреА-рдП рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЧрддрд┐ рдореЗрдВ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛
рдиреАрдЪреЗредрдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Fabric3 1.14.post1 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
рдЬрдм open_shell(command='nano /home/pi/.piHoleRestore/01-pihole.conf.old') рдХреЗ рд╕рд╛рде рджреМрдбрд╝реЗрдВ
рддрдм рдореИрдВ рдиреИрдиреЛ рд╕рдВрдкрд╛рджрдХ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реВрдВ
рдкреАрдЖрдИ@рд░рд╛рд╕реНрдкрдмреЗрд░реАрдкреА :~$ рд╢реЛрдХреА-рдП
^[ 27 0033 0x1b # рдКрдкрд░ рдкрд╣рд▓рд╛ рддреАрд░ рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ
[91 0133 0x5рдмреА # рдКрдкрд░ рджреВрд╕рд░рд╛ рддреАрд░ рдкреНрд░реЗрд╕
рдП 65 0101 0x41 #
^[ 27 0033 0x1b # рдбрд╛рдЙрди рдлрд░реНрд╕реНрдЯ рдПрд░реЛ рдХреА рдкреНрд░реЗрд╕
[91 0133 0x5рдмреА # рдбрд╛рдЙрди рд╕реЗрдХреЗрдВрдб рдПрд░реЛ рдкреНрд░реЗрд╕
рдмреА 66 0102 0x42 #
^[ 27 0033 0x1b # рдмрд╛рдпрд╛рдВ рдкрд╣рд▓рд╛ рддреАрд░ рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ
[91 0133 0x5рдмреА # рд▓реЗрдлреНрдЯ рд╕реЗрдХреЗрдВрдб рдПрд░реЛ рдкреНрд░реЗрд╕
рдбреА 68 0104 0x44 #
^[ 27 0033 0x1b # рджрд╛рдпрд╛рдВ рдкрд╣рд▓рд╛ рддреАрд░ рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ
[91 0133 0x5рдмреА # рд░рд╛рдЗрдЯ рд╕реЗрдХреЗрдВрдб рдПрд░реЛ рдкреНрд░реЗрд╕
рд╕реА 67 0103 0x43 #рдЬрдм рд╕рд╛рдорд╛рдиреНрдп ssh рд╕рддреНрд░ рдХреЗ рд╕рд╛рде рднрд╛рдЧрд╛
рдкреАрдЖрдИ@рд░рд╛рд╕реНрдкрдмреЗрд░реАрдкреА :~$ рд╢реЛрдХреА-рдП
^[[рдП 27 0033 0x1рдмреА # рдЕрдк рдПрд░реЛ
91 0133 0x5b
65 0101 0x41
^[[рдбреА 27 0033 0x1рдмреА # рдбрд╛рдЙрди рдПрд░реЛ
91 0133 0x5b
68 0104 0x44
^[[рдмреА 27 0033 0x1рдмреА # рдмрд╛рдпрд╛рдВ рддреАрд░
91 0133 0x5b
66 0102 0x42
^[[рд╕реА 27 0033 0x1рдмреА # рджрд╛рдпрд╛рдВ рддреАрд░
91 0133 0x5b
67 0103 0x43-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/fabric/fabric/issues/1719 , рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ABUzl55nzK_drLV4Q8bYs9Azzn1UXZHzks5tVnY2gaJpZM4SJN4T
.
@bepetersn рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдкрд╛рдП рдЧрдП io.py рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ:
https://github.com/fabric/fabric/pull/1389/commits/8efbff173cdbc5f6f84eb7caeab12b8e1bfded22
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдлреИрдмреНрд░рд┐рдХ V2 . рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рд╕рдорд╛рдкрди рдореБрджреНрджрд╛
рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдиреЛрдЯ, рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬ рдЗрдирд╡реЛрдХ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдлреИрдмреНрд░рд┐рдХ 2 рдореЗрдВ рдХрд╛рдлреА рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдореИрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ run()
рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред