Fork me on GitHub
#clojure-russia
<
2016-02-06
>
Kira Sotnikov11:02:12

Кхм господа, я вот взял java shell либку, выполняю команду, прям в команде делаю > file.txt

Kira Sotnikov11:02:16

но чуда не происходит

Kira Sotnikov11:02:48

[clojure.java.shell :refer [sh with-sh-dir] ]

larhat11:02:50

а рабочая директория какая у процесса? а есть уверенность, что либка на /tmp/* не меняет?

Kira Sotnikov11:02:48

(with-sh-dir to-path
      (sh-ex "git" "rev-parse" "HEAD" ">" "rev.txt"))

Kira Sotnikov11:02:12

насколько я понял with-sh-dir какр аз меняет диру где исполняется

larhat11:02:54

я не знаю про clojure.java.shell, но обычно, если ты передаёшь аргументы в подобные шел-обёртки в виде массива, они экранируются и тд: {:exit 128, :out "af15beeab5ff9cde411c3db086ca9a24ace4c898\n>\n", :err "fatal: ambiguous argument '>': unknown revision or path not in the working tree.\nUse '--' to separate paths from revisions, like this:\n'git <command> [<revision>...] -- [<file>...]'\n"}

Kira Sotnikov11:02:27

larhat: я старую версию взял, ща новую дам

Kira Sotnikov11:02:29

я про сниппет

Kira Sotnikov11:02:54

(with-sh-dir to-path
      (apply sh-ex ["git" "rev-parse" "HEAD" "--" ">" "rev.txt"]))

Kira Sotnikov11:02:21

sh-ex надо функцию? там просто препарируется для sh

Kira Sotnikov11:02:07

мне просто понять, то что я делаю вообще работает, или мне надо брать IO кложи и писать через него

Kira Sotnikov11:02:29

(я не исключаю что дальше кто-нить чистит диру и мой файлик улетает, еще не проверял)

larhat11:02:31

ну > это фича шела

Kira Sotnikov11:02:37

ну вот я знаю )

Kira Sotnikov11:02:45

в логах все ништяк, ошибок нет

larhat11:02:45

Runtime.exec (который внутри sh) — стартует сам процесс

larhat11:02:00

я думаю нужно тебе самому stdout брать и писать

larhat11:02:17

или искать аналоги, которые шел стартовать будут (не уверен, что в жаве это принято)

Kira Sotnikov11:02:18

значит у меня косяк дальше где-то

Kira Sotnikov11:02:29

да мне нужна сраная ревизия текущая

Kira Sotnikov11:02:37

чтобы ее заппассить в вызов апи

larhat11:02:53

(:out (clojure.java.shell/sh "git" "rev-parse" "HEAD")) "af15beeab5ff9cde411c3db086ca9a24ace4c898\n"

Kira Sotnikov11:02:05

да, а файлик есть?

larhat11:02:13

да не будет файлика :)

larhat11:02:24

">" это шел редирект

Kira Sotnikov11:02:35

нуу, я редиреку в файл же

larhat11:02:41

а Runtime.exec выполняет не шел команду, а запускает процесс

larhat11:02:45

с аргументами

larhat11:02:52

а stdout процесса тебе отдаёт

Kira Sotnikov11:02:03

теперь понятно

larhat11:02:23

то есть, если нужен файлик — пиши сам, или ищи либку/метод, который именно шел запустят

Kira Sotnikov11:02:24

значит мне нужно через http://java.io писать в файл

Kira Sotnikov11:02:45

larhat: СПАСИБО ты мне сэкономил часа 4 жизни

az16:02:28

Всем привет simple_smile

az16:02:34

что нового? )

artemyarulin17:02:35

Eric Lippert (не последний чувак стоящий за C#) начал писать в бложике про окамл http://ericlippert.com/2016/02/05/forest_path/ . Это если про новости simple_smile

be918:02:22

Как ты успеваешь следить за всеми этими чуваками?

be918:02:07

Кто из них обрёл истинную веру (хехе), а кто нет

artemyarulin18:02:22

неа, за этим я 10 лет следил пока был адептом мс simple_smile Счас просто ктот в твиттере запостил, я увидел знакомое имя

az18:02:19

Что значит последний чувак за с# ?

artemyarulin18:02:58

“не последний чувак”, т.е. "Before starting at Coverity in January of 2013, I was a Principal Developer at Microsoft on the C# compiler team and a member of the C# language design team."

artemyarulin18:02:38

хотя неа, раз он счас уже не работает в мс над C# то уже не интересно, я думал мож он прозреет и перетащит все туда, эх

be922:02:49

Дык F# же. Вброс по линии *ML уже давно случился