diff --git a/exercices/gen_arbo.sh b/exercices/gen_arbo.sh new file mode 100644 index 0000000..fad643b --- /dev/null +++ b/exercices/gen_arbo.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +if [ "$#" -ne 1 ] ; then + echo 'Generate file tree at . Not using random seed.' + echo 'Usage: $0 ' + exit 1 +fi + +cd $1 + +#rm -rf * + +mkdir -p viens/voir/par/ici/si/jy/suis +echo "faites demi-tour avec prudence" > viens/voir/par/ici/si/jy/suis/ah_bah_non +mkdir chez ; cd chez +mkdir moi toi lui elle ellui eux nous iels ; cd .. +mkdir Trash ; cd Trash +mkdir tmp info files prefecture ; cd .. +mkdir unix ; cd unix +mkdir bin boot dev etc home home/user home/root home/sudo home/user2 lib media mnt opt proc root run sbin srv sys tmp usr var +touch initrd.img vmlinuz ; cd .. +mkdir Images +touch Images/thisisBASHyoulowlycasual +mkdir TrucSuperImportant +echo -e "La vie ? \nUn sacré sac de petits tracas et de grandes contrariétés. \n\nMais avec des pauses crêpe, ça passe." > TrucSuperImportant/la_verite_se_trouve_ici.txt + +mkdir -p "Video/My_Little_Pony-Friendship_is_Magic" ; cd "Video/My_Little_Pony-Friendship_is_Magic" +touch "1_-_Friendship_Is_Magic_(Part_1).webm" "2_-_Friendship_Is_Magic_(Part_2).webm" "3_-_The_Ticket_Master.webm" "4_-_Applebuck_Season.webm" "5_-_Griffon_the_Brush-Off.webm" "6_-_Boast_Busters.webm" "7_-_Dragonshy.webm" "8_-_Look_Before_You_Sleep.webm" "9_-_Bridle_Gossip.webm" "10_-_Swarm_of_the_Century.webm" "11_-_Winter_Wrap_Up.webm" "12_-_Call_of_the_Cutie.webm" "13_-_Fall_Weather_Friends.webm" "14_-_Suited_for_Success.webm" "15_-_Feeling_Pinkie_Keen.webm" "16_-_Sonic_Rainboom.webm" "17_-_Stare_Master.webm" "18_-_The_Show_Stoppers.webm" "19_-_A_Dog_and_Pony_Show.webm" "20_-_Green_Isn't_Your_Color.webm" "21_-_Over_a_Barrel.webm" "22_-_A_Bird_in_the_Hoof.webm" "23_-_The_Cutie_Mark_Chronicles.webm" "24_-_Owl's_Well_That_Ends_Well.webm" "25_-_Party_of_One.webm" "26_-_The_Best_Night_Ever.webm" +cd ../.. + +mkdir secrets +echo -e "https://www.infokiosques.net : Mine d'or de documentation anarchiste sur tous les sujets de luttes actuelles, passées et futures. Enfin une façon d'apprendre sans s'encombrer de l'école \!\nhttps://www.lamuledupape.com : média indépendant et entêté, qui donne des nouvelles du sud dont on n'entendra jamais parler à la télé ni la radio\nhttps://www.lepoing.net : journal participatif montpeliérain\nhttps://www.rebellyon.fr : actualités des luttes dans la région lyonnaise et le reste de la France\nhttps://www.lemediatv.fr : site de journalisme et actualités en vidéo, fait par des idéalistes indépendant.es" > secrets/ne_pas_ouvrir.txt + + + diff --git a/exercices/gen_enonces.sh b/exercices/gen_enonces.sh new file mode 100644 index 0000000..cb2d43f --- /dev/null +++ b/exercices/gen_enonces.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +if [ "$#" -lt 2 ] ; then + echo 'Usage: $0 [root]' + echo ': seed directory' + echo ': home directory' + echo '[root]: unused. Please dont try to feed it! You have been warned.' + exit 1 +fi + +seed=$1 +eleve=$2 +root=$3 + +mkdir -p enonces/$eleve prof/$eleve + +function ex1() { +#cd quelque part et touch un fichier + + folder=$(head -n 1 $seed/$eleve/folders.seed) + + echo -e "\tEXERCICE 1\n\nRends-toi dans le dossier $folder et crée un fichier dont le nom est ton prénom (avec une majuscule au début, et des tirets à la place des espaces).\n\tEx: $folder/Jean-claude" > enonces/$eleve/ex1.txt + + echo -e "#!/bin/bash \nls $folder | grep -i $eleve ; exit \$?" > prof/$eleve/ex1.sh +} + +function ex2() { +#cd quelque part, ls et touch un fichier + + folder=$(head -n 2 $seed/$eleve/folders.seed | tail -n 1) + int=$(head -n 1 $seed/$eleve/ints.seed) + + echo -e "\tEXERCICE 2\n\nRends-toi dans le dossier $folder.\nListe les fichiers présents.\nCrée le fichier qui continue la suite logique.\n\tEx: 1.txt 2.txt 3.txt" > enonces/$eleve/ex2.txt + + for i in $(seq 1 $int) ; do + touch $folder/$i.txt + done + + ((i=int+1)) + + echo -e "#!/bin/bash \nls $folder | grep -i $i.txt ; exit \$?" > prof/$eleve/ex2.sh +} + +function ex3() { + + folder=$(head -n 3 $seed/$eleve/folders.seed | tail -n 1) + filename=$(head -n 1 $seed/$eleve/filenames.seed) ; + folder2=$(head -n 4 $seed/$eleve/folders.seed | tail -n 1) + filename2=$(head -n 2 $seed/$eleve/filenames.seed | tail -n 1) + + echo -e "Va créer un fichier $filename.txt dans le dossier $folder." > $folder2/$filename2 + + echo -e "Suis les instructions du fichier $folder2/$filename2" > enonces/$eleve/ex3.txt + + echo -e "#!/bin/bash \nls $folder | grep -i $filename ; exit \$?" > prof/$eleve/ex3.sh +} + +ex1 +ex2 +ex3 + + + + + + diff --git a/exercices/gen_seed.sh b/exercices/gen_seed.sh new file mode 100644 index 0000000..40800ed --- /dev/null +++ b/exercices/gen_seed.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +USAGE="gen_seed.sh ROOT FOLDERS FILES FILENAMES INTEGERS USER DIR : generate a file USER.seed in the DIR folder, which can be then used to generate exercises." + +if [[ $# != 7 ]] ; then echo -e $USAGE ; exit 0 ; fi + +# This users home +root=$1 + +# How many random folders, files, filenames and integers you need +folders=$2 +files=$3 +filenames=$4 +ints=$5 + +# username +USER=$6 + +# Seeds storage +DIR=$7 + +if echo $DIR | grep -v /$ ; then DIR=$DIR/ ; fi + +mkdir $DIR$USER ; + +find $root -type d | shuf | head -n $folders > $DIR$USER/folders.seed + +find $root -type f | shuf | head -n $files > $DIR$USER/files.seed + +cat haddock.list | shuf | head -n $filenames > $DIR$USER/filenames.seed + +if [[ -s $DIR$USER/ints.seed ]] ; then rm $DIR$USER/ints.seed ; fi + +for i in $(seq 1 $ints) ; do + echo $((3 + $RANDOM % 13)) >> $DIR$USER/ints.seed +done + diff --git a/exercices/haddock.list b/exercices/haddock.list new file mode 100644 index 0000000..9838a3c --- /dev/null +++ b/exercices/haddock.list @@ -0,0 +1,229 @@ +accapareur +aérolithe +amphitryon +anacoluthe +analphabète +animal +anthracite +anthropophage +anthropopithèque +apache +apophtegme +arlequin +ascenseur +autocrate +autodidacte +Aztèques +babouin +bachi-bouzouk +bandit +bibelot +bibendum +bidule +boit-sans-soif +bonhomme +brigand +brontosaure +brute +cachalot +cake-walk +calembredaine +canaille +Canaque +cannibale +casse-pieds +catachrèse +cataplasme +cercopithèque +chauffard +chenapan +choléra +chrysanthème +cloporte +clown +clysopompe +coléoptère +coloquinte +coquin +cornemuse +cornichon +corsaire +coupe-jarret +cromagnon +cuistre +cyanure +cyclone +cyclotron +diable +diablesse +diplodocus +doryphore +dynamiteur +écornifleur +écraseur +Ectoplasme +égoïste +emplâtre +empoisonneur +énergumène +enragé +épouvantail +équilibriste +esclavagiste +escogriffe +escroc +entêté +farceur +fichu +fiston +flibustier +flûte +forban +fourbe +froussard +gaillard +galopin +gamin +gangster +gargarisme +garnement +goujat +gredin +grenouille +gros-plein-de-soupe +gyroscope +hérétique +hors-la-loi +hurluberlu +hydrocarbure +iconoclaste +invertébré +isotope +ivrogne +jocrisse +judas +Khroumir +KRRTCHMVRTZ +Kanak +lâche +lascar +lépidoptère +logarithme +maboul +macaque +macrocéphale +malappris +malheur +malheureux +malotru +Mamelouk +maudit +mazette +mégacycle +mégalomane +mercanti +mercenaire +mérinos +misérable +moratorium +moricaud +mouchard +moujik +moussaillon +mufle +MRKRPXZKRMTFRZ +naufrageur +négrier +nyctalope +olibrius +ophicléide +ornithorynque +oryctérope +ostrogoth +Pachyderme +paltoquet +pantoufle +papou +paranoïaque +parasites +Patagon +patapouf +patate +peau-rouge +pénultième +péronnelle +phénomène +phlébotome +phylactère +phylloxéra +pignouf +pirate +pleurnichard +polichinelle +polygraphe +potentat +poussière +profiteur +protozoaire +pyromane +pyrophore +rapace +rat +ravachol +renégat +rhizopode +rocambole +sacripant +sajou +saltimbanque +sapajou +sapristi +satrape +sauvage +scélérat +schizophrène +scolopendre +scorpion +serpent +sinapisme +soulographe +tchouk-tchouk-nougat +technocrate +terroriste +tigresse +tonnerre +topinambour +tortionnaire +traîne-potence +traître +tricheur +troglodyte +trompe-la-mort +troufignol +vampire +vandale +va-nu-pieds +vaurien +végétarien +vermicelles +vermine +vipère +vivisectionniste +voleur +Wisigoths +Zapotèques +zèbre +zigomar +zouave +Zoulou +anthropopithèque +flibustier +particulier +sinapisme +anthropopithèque +boit-sans-soif +cornichon +froussard +maraud +paltoquet +sapajou