/* ĊĠĠ ĠCopyright Ġ 2 0 1 7 - 2 0 2 0 ĠChar les ĠK orn . ĊĊĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); ĊĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . ĊĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat ĊĊĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 ĊĊĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware ĊĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĊĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . ĊĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand ĊĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ */ Ċ Ċ package Ġb ate ct . docker . run Ċ Ċ import Ġb ate ct . docker . Docker Container Ċ import Ġb ate ct . docker . api . Container Stopped Exception Ċ import Ġb ate ct . docker . api . Containers API Ċ import Ġb ate ct . logging . Logger Ċ import Ġb ate ct . os . Console Dimensions Ċ import Ġb ate ct . os . Dimensions Ċ Ċ class ĠContainer TTY Manager ( ĊĠĠĠ Ġprivate Ġval Ġapi : ĠCont ainers API , ĊĠĠĠ Ġprivate Ġval Ġconsole Dimensions : ĠConsole Dimensions , ĊĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġmonitor For Size Changes ( container : ĠDocker Container , Ġframe Dimensions : ĠDimensions ): ĠAuto Closeable Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcleanup Ġ= Ġconsole Dimensions . register Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Current Dimensions To Container ( container , Ġframe Dimensions ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsend Current Dimensions To Container ( container , Ġframe Dimensions ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcleanup ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Current Dimensions To Container ( container : ĠDocker Container , Ġframe Dimensions : ĠDimensions ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Dimensions Ġ= Ġconsole Dimensions . current ĊĊĠĠĠĠĠĠĠ Ġif Ġ( current Dimensions Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . resize TTY ( container , Ġcurrent Dimensions Ġ- Ġframe Dimensions ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠContainer Stopped Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage (" Res izing Ġcontainer Ġfailed Ġbecause Ġthe Ġcontainer Ġis Ġstopped .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexception ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ