Я не уверен, что это « не делай этого » тоже ...
Благодаря чрезвычайно полезному обсуждению в https://unix.stackexchange.com/questions/213799/can-bash-write-to-its-own-input-stream/ ...
Утилита tailcd
(для «tail-call cd
»), которая работает как в bash, так и под Midnight Commander, позволяет использовать в таких скриптах, как
/ bin / mkcd:
mkdir "$1" && tailcd "$1"
Реализация сложная и требует xdotool
. Команда tailcd
должна быть последней командой в сценарии (это типичное требование совместимости для утилит, которые допускают несколько реализаций). Он взламывает поток ввода bash, а именно вставляет в него cd
. В случае Midnight Commander, он дополнительно вставляет две комбинации клавиш Ctrl + O (включение / выключение панелей) и очень хакерским способом использует sleep для межпроцессной синхронизации (что обидно, но работает).
/ bin / tailcd:
#! /bin/bash
escapedname=`sed 's/[^a-zA-Z\d._/-]/\\\\&/g' <<< "$1"`
if [ -z "$MC_TMPDIR" ] ; then
xdotool type " cd $escapedname "; xdotool key space Return
else
(sleep 0.1; xdotool type " cd $escapedname "; xdotool key space Return Ctrl+o; sleep 0.1; xdotool key Ctrl+o )&
fi
(Пробел перед cd
не позволяет вставленной команде перейти в историю; пробелы после имени каталога требуются для его работы, но я этого не делаю знаю почему.)
Другая реализация tailcd
не использует xdotool
, но она не работает с Midnight Commander:
#!/bin/bash
escapedname=`sed 's/[^a-zA-Z\d._/-]/\\\\&/g' <<< "$1"`
perl -e 'ioctl(STDIN, 0x5412, Я не уверен, что это « не делай этого » тоже ...
Благодаря чрезвычайно полезному обсуждению в https://unix.stackexchange.com/questions/213799/can-bash-write-to-its-own-input-stream/ ...
Утилита tailcd
(для «tail-call cd
»), которая работает как в bash, так и под Midnight Commander, позволяет использовать в таких скриптах, как
/ bin / mkcd:
[110] Реализация сложная и требует xdotool
. Команда tailcd
должна быть последней командой в сценарии (это типичное требование совместимости для утилит, которые допускают несколько реализаций). Он взламывает поток ввода bash, а именно вставляет в него cd
. В случае Midnight Commander, он дополнительно вставляет две комбинации клавиш Ctrl + O (включение / выключение панелей) и очень хакерским способом использует sleep для межпроцессной синхронизации (что обидно, но работает).
/ bin / tailcd:
[111] (Пробел перед cd
не позволяет вставленной команде перейти в историю; пробелы после имени каталога требуются для его работы, но я этого не делаю знаю почему.)
Другая реализация tailcd
не использует xdotool
, но она не работает с Midnight Commander:
[112] В идеале, tailcd
будет / должно быть часть bash, используйте нормальное межпроцессное взаимодействие и т. д.
) for split "", join " ", @ARGV' " cd" "$escapedname" В идеале, tailcd
будет / должно быть часть bash, используйте нормальное межпроцессное взаимодействие и т. д.
\r'
В идеале, tailcd
будет / должно быть часть bash, используйте нормальное межпроцессное взаимодействие и т. д.
I gave up on the embedded JBoss and switched with using the Maven JBoss Plugin to deploy to a JBoss instance started as a separate process. Not ideal but there were to many conflicts with our code and Maven to get around. Is there a reason you need the embedded version?
You should be able to do something like this to deploy to JBoss in the pre-integration test phase so the integration test could run against. You would still have to launch jboss before maven. Not ideal, but this is working for me.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jboss-maven-plugin</artifactId>
<executions>
<execution>
<phase>pre-integration-test</phase>
<goals>
<goal>deploy</goal>
</goals>
<configuration>
<jbossHome>/opt/JBoss/current</jbossHome>
<port>8080</port>
</configuration>
</execution>
</executions>
</plugin>