#!/ usr / bin / env Ġkotlin - script . sh Ċ package Ġpaste Ċ Ċ import Ġcopy . clipboard File Ċ import Ġdebug List Ċ import Ġjava . io . File Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġpaste Files () Ċ } Ċ Ċ fun Ġpaste Files () Ġ{ ĊĠĠĠ Ġvar Ġfiles Ġ= Ġclipboard File (). read Lines (). map Ġ{ ĠFile ( it ) Ġ} ĊĠĠĠ Ġval Ġcurrent Dir Ġ= ĠFile (". "). absolute File . also Ġ{ Ġprintln (" C WD Ġis Ġ$ it ") Ġ} ĊĠĠĠ Ġval Ġprevious Dir Ġ= Ġfiles . first OrNull ()?. also Ġ{ Ġprintln (" C WD Ġwas Ġ$ it ") Ġ} Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Usage : Ġ$ Ġcopy . kt Ġa Ġb Ġc Ġd Ġ&& Ġcd Ġ/ tmp Ġ&& Ġpaste . kt Ġ") ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġfiles Ġ= Ġfiles . take Last ( files . size Ġ- Ġ 1 ) ĊĊĠĠĠ Ġval Ġdoes NotExist Ġ= Ġfiles . filter Not Ġ{ Ġit . exists () Ġ} ĊĠĠĠ Ġdoes NotExist . map Ġ{ Ġit . absolute Path Ġ}. debug List (" invalid ") ĊĠĠĠ Ġval Ġok Ġ= Ġ( files Ġ- Ġdoes NotExist ) ĊĠĠĠ Ġfor Ġ( file Ġin Ġok ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġfile . relative To ( previous Dir ). canonical Path ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġcurrent Dir . resolve ( path ) ĊĠĠĠĠĠĠĠ Ġprintln ("${ file . canonical Path } Ġ--> Ġ${ target . canonical Path }") ĊĠĠĠĠĠĠĠ Ġfile . copy Re cursively ( target , Ġoverwrite Ġ= Ġtrue , ĠonError Ġ= Ġ{ Ġf , Ġio Exception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Error Ġ$ io Exception Ġfor Ġ${ f . canonical Path }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOn ErrorAction . SKIP ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ