import Ġorg . gradle . Start Parameter Ċ import Ġorg . gradle . Task Execution Request Ċ import Ġorg . gradle . api . logging . Logger Ċ import Ġorg . gradle . api . logging . Logging Ċ import Ġorg . jetbrains . kotlin . gradle . utils . load Property From Resources Ċ import Ġorg . jo or . Reflect Ċ Ċ object ĠEnv Ġ{ ĊĠĠĠ Ġinternal Ġval Ġlogger : ĠLogger Ġ= ĠLogging . getLogger ( this :: class . java ) ĊĠĠĠ Ġprivate Ġvar Ġimpl Ġ= ĠEnv Impl ( false ) ĊĊĠĠĠ Ġfun Ġreload ( start Param : ĠStart Parameter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġä»İ åĲ¯åĬ¨ ä»»åĬ¡ ä¸Ń å¯ » æī¾ æĺ¯åĲ¦ åĲ« æľī Release / Qa Test ç¼ĸè¯ĳ çļĦ task ĊĠĠĠĠĠĠĠ Ġval Ġstart Task Requests : ĠList < Task Execution Request > Ġ= Ġstart Param . task Requests ĊĠĠĠĠĠĠĠ Ġcontains Release Build Ġ= Ġstart Task Requests . flatMap Ġ{ Ġit . args Ġas ĠList < String > Ġ}. find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . contains (" Q atest ") Ġ|| Ġit . contains (" Release ") ĊĠĠĠĠĠĠĠ Ġ} Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġ// ĠåĪĽå»º impl ĊĠĠĠĠĠĠĠ Ġimpl Ġ= ĠEnv Impl ( contains Release Build ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġvar Ġcontains Release Build : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġinternal Ġval Ġag p : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġimpl . ag p ĊĠĠĠ Ġinternal Ġval Ġv cs Commit Id : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġimpl . vcs Commit Id ĊĠĠĠ Ġinternal Ġval Ġv cs Version Code : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġimpl . vcs Version Code ĊĊĠĠĠ Ġinternal Ġconst Ġval Ġtarget Sdk Version Ġ= Ġ 2 9 ĊĠĠĠ Ġinternal Ġconst Ġval Ġcompile Sdk Version Ġ= Ġ 3 1 ĊĊĠĠĠ Ġprivate Ġclass ĠEnv Impl ( ĊĠĠĠĠĠĠĠ Ġcontains Release Build : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ com . android . Version . ANDROID _ GRAD LE _ PLUGIN _ VERSION ] ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ com . android . build . gradle . internal . profile . Analytics Util . get Product Details (). version ] ĊĠĠĠĠĠĠĠĠ Ġ* ĠæĿ¥ èĩª Ġcom . android . tools : common Ġ ä¾Ŀèµĸ å®ļä¹ī ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġag p : ĠString Ġ= ĠReflect . on Class (" com . android . Version ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" ANDROID _ GRAD LE _ PLUGIN _ VERSION ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĊĠĠĠĠĠĠĠ Ġval Ġv cs Commit Id : ĠString Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸įæĺ¯ Release ç¼ĸè¯ĳ ä¸į æĽ´æĸ° çīĪæľ¬ åı· Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! contains Release Build ) Ġreturn @ lazy Ġ"-" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä»¥ commit æķ°éĩı ä»İ å¤§ åĪ° å°ı æİĴåºı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcommit Id Ġ= ĠRuntime . get Runtime () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec (" git Ġrev - parse Ġ-- short ĠHEAD ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Trim med Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . quiet (" V CS ĠCommit ĠId : Ġ${ commit Id }, Ġtime Ġcost Ġ${ System . currentTimeMillis () Ġ- Ġl } Ġms .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommit Id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġv cs Version Code : ĠInt Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸įæĺ¯ Release ç¼ĸè¯ĳ ä¸į æĽ´æĸ° çīĪæľ¬ åı· ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! contains Release Build ) Ġreturn @ lazy Ġ 1 0 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä»¥ commit æķ°éĩı ä»İ å¤§ åĪ° å°ı æİĴåºı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġver Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRuntime ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Runtime () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. exec (" git Ġrev - list ĠHEAD Ġ-- count ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Trim med Text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" vcs Version Code : Ġ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . quiet (" V CS ĠVersion ĠCode : Ġ${ ver }, Ġtime Ġcost Ġ${ System . currentTimeMillis () Ġ- Ġl } Ġms .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġver ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠProcess . read Trim med Text (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠinputStream . reader (). read Text (). trim () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ