-
Notifications
You must be signed in to change notification settings - Fork 0
/
make.sh
executable file
·90 lines (72 loc) · 2.02 KB
/
make.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/bash
FONCT=$1
COMPILE="compile"
RUN="run"
CLEAN="clean"
STRATEGY="strategy"
WEB="web"
HELP="help"
if [ -z $FONCT ]
then
echo -e "Missibg argument compile, run, make strategy, web, help"
elif [ $FONCT == $COMPILE ]
then
echo -e "(asdf:load-system \"sudoku\")\n(sb-ext::save-lisp-and-die \"sudoku.core\" :toplevel #'sudoku::main)" |sbcl --noinform --noprint
if [ ! -d "./bin" ];then
mkdir bin
fi
mv sudoku.core bin/
elif [ $FONCT == $RUN ]
then
if [ ! -d "./bin" ];then
echo -e "Vous devez d'abord compiler avant de run. Faire :
./make.sh compile"
else
sbcl --noinform --core bin/sudoku.core
fi
elif [ $FONCT == $CLEAN ]
then
rm -rf sudoku/*~ sudoku/*.fasl
rm -rf sudoku-prof/*~ sudoku-prof/*.fasl
rm -rf strategy/*~ strategy/*.fasl
rm -rf *~ *.fasl
rm -rf bin
elif [ $FONCT == $STRATEGY ]
then
FILE_OUT=$3
STRAT=$2
rm -rf $FILE_OUT
cat sudoku/sudoku-static-method.lisp > tmp
cat sudoku/sudoku-generic.lisp >> tmp
cat sudoku/sudoku-method.lisp >> tmp
cat sudoku/sudoku-affichage.lisp >> tmp
cat strategy/$STRAT >> tmp
cat sudoku/sudoku-strategy.lisp >> tmp
sed '/package/d' tmp > $FILE_OUT
rm -rf tmp
elif [ $FONCT == $WEB ]
then
sudo /etc/cfengine3/scripts/packages_update.d/sbcl.update
echo -e "(asdf:load-system \"sudoku\")\n(asdf:load-system \"mini-gui\")\n(gui-sudoku::sudoku)" |sbcl --noinform
elif [ $FONCT == $HELP ]
then
echo -e "
====================
==== HELP ====
====================
Arguments possibles:
- compile
Compile le programme et créer l'éxécutable placé dans bin/
- run
Lance le sudoku dans le terminal
- web
Lance le sudoku sur une page web
- strategy name-strategy name-strategy-output
avec :
- name-strategy = strategy-smart.lisp / strategy-random.lisp
- name-strategy-output = toto.lisp par exemple.
toto.lisp contiendra tous les fichiers concaténés en un seul
- clean
Nettoie l'archive
"
fi