クリップボードのパイプ操作スクリプトを作成してみる

2021-02-24Groovy

クリップボードのパイプ操作スクリプトを作成してみる。(もちろんwindowsでも動作するが、僕の家のubuntu用に作ってみた)

クリップボード操作クラス作成

まずはクリップボードの情報を操作するクラスを作成し、クラスパスの通る場所に配置する。

#!/usr/bin/env groovy
import java.awt.datatransfer.DataFlavor
import java.awt.datatransfer.StringSelection

public class GClipBoard {
    def clipboard = java.awt.Toolkit.defaultToolkit.systemClipboard

    def setText(text) {
        def ss = new StringSelection(text)
        clipboard.setContents(ss, ss)
    }

    def getText() {
        def text = ""
        try {
            text = clipboard.getContents(null).getTransferData(DataFlavor.stringFlavor)
        } catch (e) {
            text = ""
        }
        text
    }
}

コマンドラインスクリプト作成

次に、~/binに以下の2つのファイルを配置( パスの通る場所と言う意味

getclip.groovy

#!/usr/bin/env groovy
import GClipBoard
println new GClipBoard().text

putclip.groovy

#!/usr/bin/env groovy
import GClipBoard
new GClipBoard().text = System.in.text

試行

以下のコマンド実行。
クリップボードの情報が表示されるはず。

getclip.groovy

こちらは、出力内容を受け取りクリップボードにセットしてくれる。

ls | putclip.groovy


2021-02-24Groovy