Skip to content

Commit 35ed1be

Browse files
bdchiltonrlepigrephyver
authored
Improve the documentation
- shorter README.md / README-fr.md - move parts of the README to the doc directory - general improvment, links between files, etc. Co-authored-by: Rodolphe Lepigre <[email protected]> Co-authored-by: Pierre Hyvernat <[email protected]>
1 parent 73b922d commit 35ed1be

10 files changed

+417
-508
lines changed

README-fr.md

Lines changed: 77 additions & 217 deletions
Original file line numberDiff line numberDiff line change
@@ -1,231 +1,92 @@
11
GameShell : un "jeu" pour apprendre le shell Unix
22
=================================================
33

4+
![Illustration inspired by the game](art/illustration-small.png)
45

5-
GameShell (gsh) est le résultat d'une réflexion sur comment enseigner les
6-
rudiments (et un peu plus) du shell à des étudiants en première année à
7-
l'université Savoie Mont Blanc.
6+
Enseigner l'utilisation d'un shell Unix à des étudiants de première année à
7+
l'université ou à des lycéens n'est pas toujours simple, ni très amusant.
8+
GameShell a été conçu comme un outil pour aider les étudiants de [l'Université
9+
Savoie Mont Blanc](https://univ-smb.fr) à découvrir un *vrai* shell, avec une
10+
approche qui favorise l'apprentissage tout en s'amusant.
811

912
L'idée initiale, due à Rodolphe Lepigre, était de lancer une session bash avec
1013
un fichier de configuration qui définissait des "missions", qui seraient
11-
"validées" pour avancer.
12-
13-
Voila le résultat...
14-
15-
N'hésitez pas à nous envoyer vos remarques, questions ou suggestions autour de
16-
GameShell. Nous sommes particulièrement intéressés pas toute nouvelle mission
17-
que vous pourriez créer !
18-
19-
GameShell est distribué sous la licence [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)
20-
21-
22-
### Développeurs
23-
24-
* Pierre Hyvernat
25-
* Rodolphe Lepigre
26-
27-
28-
### contact
29-
30-
Pierre Hyvernat
31-
32-
http://www.lama.univ-smb.fr/~hyvernat
33-
34-
35-
36-
37-
38-
39-
Prérequis
40-
---------
41-
42-
GameShell devrait (??) fonctionner sur un système Linux standard. Pour
43-
Debian/Ubuntu, la seule vrai dépendance (à part `bash`) pour jouer est le
44-
[paquet](paquet) `gettext-base`.
45-
46-
Si vous souhaitez créer vos propres missions et les traduire, il faudra
47-
également installer le paquet `gettext`.
48-
49-
Certaines missions ont des dépendances supplémentaires. Si elles ne sont pas
50-
satisfaites, ces missions seront simplement ignorées. Pour pouvoir lancer
51-
toutes les missions actuellement disponibles, il faut disposer des commandes
52-
suivantes
53-
54-
- `man` (paquet `man-db` sous Debian/Ubuntu)
55-
- `ps` (paquet `procps` sous Debian/Ubuntu)
56-
- `pstree` (paquet `psmisc` sous Debian/Ubuntu)
57-
- `nano` (paquet `nano` sous Debian/Ubuntu)
58-
- `tree` (paquet `tree` sous Debian/Ubuntu)
59-
- `cal` (paquet `bsdmainutils` sous Debian/Ubuntu)
60-
- `xeyes` (paquet `x11-apps` sous Debian/Ubuntu)
61-
- `python3` (paquet `python3` sous Debian/Ubuntu)
62-
63-
Sur un système Debian / Ubuntu, la commande suivante devrait garantir que vous
64-
pouvez lancer une partie de GameShell sans problème.
65-
66-
$ sudo apt install gettext-base python3 man-db psmisc nano tree bsdmainutils x11-apps gettext
67-
68-
69-
70-
### Autres systèmes
71-
72-
#### macOS
73-
74-
Il devrait être possible de lancer GameShell depuis macOS, mais comme nous
75-
n'utilisons pas macOS, ce n'est pas beaucoup testé. Contactez nous en cas de
76-
problème ou si vous souhaitez nous aider la dessus.
77-
78-
Le plus simple est probablement d'utiliser le gestionnaire de paquets [homebrew](https://brew.sh/index_fr) :
79-
80-
```
81-
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
82-
```
83-
84-
puis d'installer les paquets nécessaires avec
85-
14+
"validées" pour avancer dans le jeu.
15+
16+
Voilà le résultat...
17+
18+
N'hésitez pas à nous envoyer vos remarques, questions ou suggestions en
19+
ouvrant des ["issues"](https://github.com/phyver/GameShell/issues) ou en
20+
soumettant des ["pull requests"](https://github.com/phyver/GameShell/pulls).
21+
Nous sommes particulièrement intéressés pas toute nouvelle mission que vous
22+
pourriez créer !
23+
24+
25+
Comment jouer ?
26+
---------------
27+
28+
**Note:** GameShell est en phase de développement : la version courante n'a
29+
pas été intensivement testée par des étudiants. N'hésitez pas à rapporter tout
30+
problème que vous pourriez rencontrer et toute suggestion d'amélioration en
31+
ouvrant une ["issue"](https://github.com/phyver/GameShell/issues/new).
32+
33+
GameShell devrait fonctionner sur n'importe quel système Linux standard, et
34+
aussi sur macOS et BSD (mais ces systèmes ont été moins testés). Sur Debian ou
35+
Ubuntu, les seules dépendances (autres que `bash`) sont les paquets `awk` et
36+
`gettext-base` (le premier étant généralement installé par défaut). Certaines
37+
missions ont des dépendances additionnelles : elles seront annulées si leurs
38+
dépendances ne sont pas satisfaites. Sur Debian ou Ubuntu, lancez la commande
39+
suivante pour installer toutes les dépendances pour le jeu et les missions.
40+
```sh
41+
$ sudo apt install gettext-base man-db psmisc nano tree bsdmainutils x11-apps
8642
```
87-
$ brew install nano pstree tree man-db
43+
Consultez le [manuel utilisateur](doc/user_manual.md) (en anglais) pour voir
44+
comment installer les dépendances sur d'autres systèmes (macOS, BSD, ...).
45+
46+
En supposant que toutes les dépendances sont installées, vous pouvez essayer
47+
la dernière version du jeu en lançant les deux commandes suivantes dans un
48+
terminal.
49+
```sh
50+
$ wget https://github.com/phyver/GameShell/releases/download/latest/GameShell.sh
51+
$ bash GameShell.sh
8852
```
53+
La première commande téléchargera la dernière version du jeu sous la forme
54+
d'une archive auto-extractible, et la seconde commande initialisera et lancera
55+
le jeu à partir de cette archive. Les instructions pour jouer sont données
56+
directement dans le jeu.
8957

58+
Quand vous quitterez le jeu (avec `control-d` ou la commande `gsh exit`) votre
59+
progression sera sauvegardée dans une nouvelle archive (nommée
60+
`GameShell-save.sh`). Elle peut être lancée pour reprendre le jeu où vous vous
61+
étiez arrêté.
9062

91-
#### BSD ???
92-
93-
Nous n'avons pas beaucoup testé, mais GameShell semble fonctionner sous
94-
freeBSD si vous installez les dépendances :
95-
96-
````
97-
$ pkg install bash gettext pstree wget
98-
````
99-
100-
101-
#### Windows ???
102-
103-
Il est peut-être possible de lancer GameShell depuis Windows si vous avez
104-
installé [Cygwin](https://www.cygwin.com/).
10563

106-
Nous n'avons pas testé.
107-
108-
109-
110-
Lancer GameShell
111-
----------------
112-
113-
### 1/ depuis les sources
114-
115-
Récupérez l'archive et lancez le script `start.sh` :
116-
117-
$ rm -rf GameShell && mkdir GameShell && wget https://api.github.com/repos/phyver/GameShell/tarball -O - | tar -xz -C GameShell --strip-components 1
118-
$ ./GameShell/start.sh
119-
...
120-
...
121-
122-
Si votre version de `tar` ne supporte pas l'option `--strip-components`,
123-
utilisez
124-
125-
$ rm -rf phyver-GameShell-* && wget https://api.github.com/repos/phyver/GameShell/tarball -O - | tar -xz
126-
$ ./phyver-GameShell-*/start.sh
127-
...
128-
...
129-
130-
131-
### 2/ depuis le dépôt git
132-
133-
Après avoir cloné le dépot, lancez le script `start.sh`
134-
135-
$ git clone https://github.com/phyver/GameShell.git
136-
$ ./GameShell/start.sh
137-
...
138-
...
139-
140-
141-
### 3/ depuis une archive exécutable
142-
143-
C'est le plus simple pour distribuer GameShell à des étudiants. Après avoir
144-
cloné le dépot, créez une archive exécutable avec le script `archive.sh` :
145-
146-
$ cd GameShell
147-
$ ./utils/archive.sh
148-
copy missions
149-
01_cd_1 --> 000001_cd_1
150-
...
151-
...
152-
generating '.mo' files
153-
removing 'auto.sh' scripts
154-
removing unnecessary (_*.sh, Makefile) files
155-
setting admin password
156-
setting default GameShell mode
157-
creating archive
158-
creating self-extracting archive
159-
removing tgz archive
160-
removing temporary directory
161-
$ ls
162-
... GameShell.sh ...
163-
164-
Le fichier `GameShell.sh` contient une instance de GameShell que l'on peut
165-
transférer sur n'importe quel ordinateur. Pour le lancer, vous pouvez utiliser
166-
soit
167-
168-
$ ./GameShell.sh
169-
170-
soit
171-
172-
$ bash ./GameShell.sh
173-
174-
175-
### 4/ en créant et utilisant une image Docker
176-
177-
L'idée de GameShell est d'avoir une session "la plus proche possible" d'une
178-
session shell "standard". Je l'utilise donc sur des machines Linux "standard",
179-
ou sur une machine virtuelle.
180-
181-
Il est possible de créer une image Docker en utilisant le fichier `Dockerfile`
182-
fourni pour lancer GameShell sans s'occuper des dépendances :
183-
184-
* création de l'image :
185-
186-
$ docker build -t gsh .
187-
188-
* lancement de l'image, si vous avez un serveur X :
189-
190-
$ host +"local:docker@" && \
191-
docker run -it \
192-
-e DISPLAY=${DISPLAY} -v /tmp/.X11-unix:/tmp/.X11-unix \
193-
gsh
194-
195-
* lancement de l'image, sans serveur X :
196-
197-
$ docker run -it gsh
198-
199-
200-
Commandes de base
201-
-----------------
202-
203-
GameShell est simplement une instance de bash avec des commandes
204-
supplémentaires. Vous pouvez les appeler avec la commande ``gsh``.
205-
206-
- `gsh help` : affiche une petite liste des commandes
207-
- `gsh goal` : affiche l'objectif de la mission courante
208-
- `gsh check` : vérifie si la mission actuelle est validée
209-
- `gsh reset` : recommence la mission courante
210-
211-
D'autre commandes existent mais ne sont normalement pas utiles dans une partie
212-
standard. Vous pouvez en obtenir la liste avec
213-
214-
- `gsh HELP` : affiche une liste complète des commandes `gsh`
215-
216-
Les commandes sont détaillés dans le fichier `doc/gameshell.md`.
64+
Documentation
65+
-------------
21766

67+
Pour en savoir plus sur GameShell les documents suivants sont disponibles (en
68+
langue anglaise uniquement):
69+
- Le [manuel utilisateur](doc/user_manual.md) explique, entre autres, comment
70+
lancer le jeu sur toutes les plateformes supportées (Linux, macOS, BSD),
71+
comment lancer le jeu à partir des sources, et comment générer une archive
72+
de jeu personnalisée (ce qui est utile pour utiliser le jeu dans le cadre
73+
d'un cours).
74+
- Le [manuel développeur](doc/dev_manual.md) explique, entre autres, comment
75+
créer une nouvelle mission, comment traduire le jeu et les missions, et
76+
comment participer au développement du jeu.
21877

219-
Ajout de missions
220-
-----------------
22178

222-
La création de nouvelles missions est détaillées dans le fichier dédié
223-
`doc/missions.md`.
79+
Qui développe GameShell?
80+
------------------------
22481

82+
### Développeurs
22583

84+
Le jeu est développé par:
85+
* [Pierre Hyvernat](http://www.lama.univ-smb.fr/~hyvernat) (développeur
86+
principal, [[email protected]](mailto:[email protected])),
87+
* [Rodolphe Lepigre](https://lepigre.fr).
22688

227-
Contributeurs missions
228-
----------------------
89+
### Contributeurs missions
22990

23091
* Pierre Hyvernat
23192
* Rodolphe Lepigre
@@ -235,18 +96,17 @@ Contributeurs missions
23596
* Sébastien Tavenas
23697
* Tiemen Duvillard
23798

99+
### Remerciements
238100

239-
Remerciements
240-
-------------
101+
* Tous les étudiants qui ont testé les toutes premières versions du jeu.
102+
* Joan Stark (alias jgs) qui a créé des centaines d'ASCII-art à la fin des
103+
années 90. La majorité des ASCII-art que vous rencontrerez dans GameShell
104+
lui sont dus.
241105

242-
* Tous mes étudiants qui ont testé les toutes premières versions
243-
* Joan Stark, qui a créé des centaines d'ASCII-art à la fin des années 90. La
244-
majorité des ASCII-art que vous rencontrerez dans GameShell lui sont dus.
245-
(Les "`jgs`" que vous verrez sont ses initiales.)
246106

247107
Licence
248108
-------
249109

250-
GameShell est distribué sous la licence [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)
110+
GameShell est distribué sous la licence [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html).
251111

252112
Merci de pointer vers ce dépôt si vous l'utilisez.

0 commit comments

Comments
 (0)