Praggerã§éã¶ãï¼
â»æ å ±ãå¤ããªã£ã¦ããã®ã§ï¼å°ãä¿®æ£ãã¾ãã
plugin/exec.rbã¨ãã¦ï¼æ¬¡ã®ãããªãã¡ã¤ã«ãä½ã
def exec(config, data) IO.popen(config["command"], "r+") {|io| ret = nil t1 = Thread.start(data){|data| io.write(data) io.close_write } t2 = Thread.start{ ret = [io.read()] } t1.join t2.join ret } end
ãããªæãã§ãä½¿ãæ¹ã¯ï¼
- module: exec config: command: cat
ã¨ãããããã®ä¾ã§ã¯ï¼catãå¼ã³åºãã¦ï¼æ¨æºå ¥åã«dataãæ¸¡ãï¼catã®åºåããã®ã¾ã¾dataã«å ¥ãã¦ã¾ãï¼dataãto_sã§å¤æããçµæãcatã«æ¸¡ããã¦ï¼catã®çµæãå«ãæååä¸ã¤ã®é åãè¿ãå¤ã«ãªãï¼
ç°¡åç°¡åã
ãã¡ã¤ã«åã¨åãååã®ã¡ã½ãããï¼pluginã¨ãã¦å¼ã³ã ãã¾ãï¼pluginæ¬ä½ã®ã¡ã½ããã¯ï¼ãã©ã°ã¤ã³ããããã«å²ãå½ã¦ããããªãã¸ã§ã¯ãã®ç¹ç°ã¡ã½ããã¨ãã¦å®ç¾©ãããããï¼ã¡ã½ããåãè¡çªãããã¨ã¯ããã¾ããï¼