add a shell script to code & run

Signed-off-by: philippe lhardy <philippe@pavilionartlogiciel>
This commit is contained in:
philippe lhardy
2015-02-09 20:48:08 +01:00
parent a041e3d82c
commit bd4a6dfc29
3 changed files with 86 additions and 9 deletions
+4 -2
View File
@@ -1,10 +1,13 @@
This is a personal project to generate a 2D maze using in depth path generation.
this can generate a stl file, overall goal was to print it with a 3D printer, i didn't test it yet ( even i hav actualy have a 3D printer ).
this can generate a stl file, overall goal was to print it with a 3D printer, i didn't test it yet ( even if i actualy have a 3D printer ).
This is the very first usable part.
It was developped under debian 7/8 but since it is java based it might be very easily recompiled or even just copied on other platform.
there is a console gui menu base with ./doit.sh
run it by :
cd java
@@ -31,7 +34,6 @@ It was tested up to 1000x1000 labyrinth and can realy generate huge labyrinth.
Entry of labyrinth is upper left corner, exit is lower right ( this is different in 3D since Y axis where reversed ).
BUGS are numerous, and every bug was cleverly designed to drive you mad.
DOCUMENTATION is self contained in code an in my brain.
Executable
+75
View File
@@ -0,0 +1,75 @@
#!/bin/bash
do_code()
{
background=$1
find java/org/artisanlogiciel/games/ -name "*.java" |
{
s=
while read codeline
do
javafile=$(basename $codeline)
javaclass=${javafile/.java/}
echo "$javafile $javaclass"
s="$s $javaclass $codeline"
done
javaclass=$($DIALOG --menu "Run it" 20 100 10 $s 3>&1 1>&2 2>&3)
if [[ -n $javaclass ]]
then
pushd java
if [[ $background == codebg ]]
then
nohup make work/$javaclass &
else
make work/$javaclass
fi
popd
fi
}
}
possible_console_gui="whiptail dialog"
for DIALOG in $possible_console_gui
do
DIALOG=$(which $DIALOG)
if [[ -n $DIALOG ]]
then
break
fi
done
if [[ -z $DIALOG ]]
then
echo "no console gui support (within $possible_console_gui) => no menus "
exit 1
fi
action=initial
while [[ $action != quit ]]
do
action=$($DIALOG --menu "Run it" 20 80 8 run "Run it" test "Test it" readme "Read me" code "Code" codebg "Code in background" quit "Quit" 3>&1 1>&2 2>&3)
if [[ $action == run ]]
then
echo "run it"
pushd java
make display
popd
elif [[ $action == test ]]
then
echo "test it"
pushd java
make display
popd
elif [[ $action =~ code ]]
then
do_code $action
elif [[ $action == readme ]]
then
$DIALOG --textbox README 20 80
fi
done
+7 -7
View File
@@ -106,7 +106,7 @@ public class Display extends JFrame
goNorth();
}
};
JButton north = addDirection("North", "UP", goNorth);
JButton north = addDirection(this,"North", "UP", goNorth);
Action goEast = new AbstractAction() {
public void actionPerformed(ActionEvent evt)
@@ -116,7 +116,7 @@ public class Display extends JFrame
goEast();
}
};
JButton east = addDirection("East", "RIGHT", goEast);
JButton east = addDirection(this,"East", "RIGHT", goEast);
Action goWest = new AbstractAction() {
@@ -127,7 +127,7 @@ public class Display extends JFrame
goWest();
}
};
JButton west = addDirection("West", "LEFT", goWest);
JButton west = addDirection(this,"West", "LEFT", goWest);
Action goSouth = new AbstractAction() {
public void actionPerformed(ActionEvent evt)
@@ -137,7 +137,7 @@ public class Display extends JFrame
goSouth();
}
};
JButton south = addDirection("South", "DOWN", goSouth);
JButton south = addDirection(this,"South", "DOWN", goSouth);
add(button,BorderLayout.CENTER);
controlPanel.add(north,BorderLayout.NORTH);
@@ -157,14 +157,14 @@ public class Display extends JFrame
}
private JButton addDirection(final String direction, String key, Action goAction)
private JButton addDirection(final JPanel panel, final String direction, String key, Action goAction)
{
String actionName = "go" + direction;
JButton button = new JButton(direction);
button.addActionListener(goAction);
KeyStroke keystroke=KeyStroke.getKeyStroke(key);
//getInputMap().put(keystroke,actionName);
//getActionMap().put(actionName,goAction);
panel.getInputMap().put(keystroke,actionName);
panel.getActionMap().put(actionName,goAction);
controlPanel.getInputMap().put(keystroke,actionName);
controlPanel.getActionMap().put(actionName,goAction);
return button;