Ce script Bash permet de compiler, exécuter, et gérer des programmes C en simplifiant les opérations de développement typiques. Il prend en charge diverses options pour offrir une flexibilité maximale.
- Bash 4.0 ou supérieur
- GCC (GNU Compiler Collection)
- zip (pour l'archivage)
- tar (pour l'archivage)
- PowerShell (pour Windows)
- gedit (pour l'ouverture de fichiers)
- nano (pour l'ouverture de fichiers)
Afin d'assurer une organisation correcte des travaux pratiques (TP), il est essentiel de suivre l'arborescence suivante :
.
├── TP1 # Dossier pour le TP numéro 1
│ ├── Exo1 # Dossier pour le premier exercice du TP1
│ │ ├── Exo1_Q1.c # Fichier C pour la première question de l'exercice 1
│ │ ├── Exo1_Q2.c # Fichier C pour la deuxième question de l'exercice 1
│ │ └── ...
│ ├── Exo2
│ │ ├── Exo2_Q1.c
│ │ └── ...
│ └── ...
├── TP2
│ ├── Exo1
│ │ ├── Exo1_Q1.c
│ │ └── ...
│ └── ...
└── ...
- TPX : Dossier principal pour chaque TP où
X
est le numéro du TP. - ExoY : Sous-dossier pour chaque exercice du TP où
Y
est le numéro de l'exercice. - ExoY_QZ.c : Fichier C pour chaque question de l'exercice où
Z
est le numéro de la question.
Veuillez suivre cette structure pour chaque nouveau TP afin de garantir une cohérence et une lisibilité optimale de vos travaux.
-
Créer la structure de TP à partir d'un PDF :
tpc -p <fichier.pdf>
-
Configuration des variables d'environnement :
tpc -c
-
Compilation et exécution : Compile et exécute le fichier C spécifié.
-
Suppression du fichier compilé :
tpc -r
-
Ouverture du fichier : Ouvre le fichier spécifié avec
gedit
:tpc -o
-
Affichage de l'aide : Montre une liste des options disponibles et comment les utiliser :
tpc -h
-
Activation de la journalisation : Journalise toutes les actions effectuées :
tpc -l
-
Vérification de la syntaxe : Vérifie la syntaxe du fichier C spécifié :
tpc -v
-
Mode Debug : Compile le fichier en mode debug :
tpc -d
-
Mode silencieux : Exécute le script en mode silencieux :
tpc -s
-
Exécution sans compilation : Si un fichier déjà compilé existe, l'exécute directement :
tpc -x
-
Liste des fichiers C : Montre une liste de tous les fichiers C dans le répertoire de base :
tpc -L
-
Suppression des fichiers temporaires : Supprime les fichiers objets et temporaires du TP spécifié :
tpc -n
-
Optimisation : Active l'optimisation de la compilation :
tpc -O
-
Archivage : Archive le TP spécifié :
tpc -a
-
Extraction d'archive dans le dossier courant :
tpc -e
-
Création de la structure de TP : Crée la structure du TP avec des fichiers C dans le dossier spécifié :
tpc -f
-
Ajout d'un modèle de fichier : Ajoute un modèle à un fichier C existant ou crée un fichier C avec un modèle :
tpc -t
-
Créer la structure de TP à partir d'un PDF:
tpc -p sujet_TP1.pdf # Crée la structure pour le TP1 à partir du PDF
-
Compiler et exécuter un fichier spécifique :
tpc 1 1 1 # Compile et exécute Exo1_Q1.c du TP1 tpc first.c # Compile et exécute first.c
-
Archivage :
tpc -a 1 zip # Archive le TP1 au format zip tpc -a /path/to/dir tar.gz # Archive le dossier spécifié au format tar.gz
-
Ouvrir un fichier avec
gedit
:tpc -o 1 2 1 # Ouvre Exo2_Q1.c du TP1 avec gedit
-
Exécution sans compilation :
tpc -x 1 2 1 # Exécute le fichier compilé Exo2_Q1.c du TP1
-
Afficher la liste des fichiers C :
tpc -L # Affiche la liste des fichiers .c dans le répertoire de base
-
Supprimer les fichiers temporaires :
tpc -n 1 # Supprime les fichiers objets/temporaires du TP1
-
Créer la structure de TP :
tpc -f /path/to/dir # Crée la structure de TP dans le dossier spécifié
-
Ajouter un modèle à un fichier C :
tpc -t /path/to/file # Ajoute un modèle de fichier
Et bien plus encore...
- Assurez-vous que les répertoires spécifiés dans
BASE_DIR
etLOG_DIR
existent et sont accessibles. - Le script ne fonctionne que pour les fichiers C (
.c
). - Le script ne fonctionne que pour les systèmes UNIX (Linux, macOS, etc.) et Windows (via PowerShell).
Avant de démarrer, veuillez configurer les variables d'environnement nécessaires. Créez un fichier .env
à la racine du projet et spécifiez les valeurs suivantes :
# Chemin vers le dossier contenant les fichiers C
BASE_DIR=/chemin/vers/vos/fichiers
# Chemin vers les Logs
LOG_DIR=/chemin/vers/vos/logs
# Type OS : UNIX, WIN
OS=UNIX
# Auteur du TP
AUTHOR=Despoullains Romain
Pour rendre le script exécutable :
chmod +x setup.sh
Après avoir cloné le dépôt:
- Naviguez vers le dossier du dépôt:
cd TPC
- Exécutez le script de configuration:
./setup.sh
Ouvrez votre fichier ~/.bashrc
:
nano ~/.bashrc
Ajoutez cette ligne à la fin:
export PATH="$PATH:/chemin/vers/votre/répertoire"
Ouvrez votre fichier ~/.zshrc
:
nano ~/.zshrc
Ajoutez cette ligne à la fin:
export PATH="$PATH:/chemin/vers/votre/répertoire"
Dans ~/.bashrc
:
alias tpc="/chemin/vers/votre/tpc.sh"
Dans ~/.zshrc
:
alias tpc="/chemin/vers/votre/tpc.sh"
source ~/.bashrc
source ~/.zshrc
-
Ouvrez PowerShell en tant qu'administrateur.
-
Vérifiez l'emplacement de votre fichier
profile.ps1
avec la commande :$PROFILE
-
Si le fichier n'existe pas, créez-le :
New-Item -Type File -Path $PROFILE -Force
-
Ouvrez ce fichier avec un éditeur (par exemple
notepad
) :notepad $PROFILE
-
Ajoutez les lignes suivantes :
$env:PATH = "$env:PATH;C:\chemin\vers\votre\repertoire" Set-Alias -Name tpc -Value "C:\chemin\vers\votre\cc.sh"
-
Sauvegardez et fermez le fichier.
-
Pour que les modifications prennent effet, fermez et rouvrez PowerShell.
-
Cliquez droit sur le bouton "Démarrer" ou appuyez sur la touche Windows + X, puis choisissez "Système".
-
Sélectionnez "Paramètres système avancés" sur le côté gauche.
-
Cliquez sur "Variables d'environnement" en bas à droite.
-
Sous "Variables utilisateur", recherchez la variable
Path
et cliquez sur "Modifier". -
Ajoutez
C:\chemin\vers\votre\repertoire
à la fin de la liste des valeurs. Assurez-vous qu'il y a un point-virgule (;
) séparant chaque entrée. -
Cliquez sur "OK" pour fermer chaque fenêtre.
Note: L'ajout d'alias est plus simple via la première méthode (profile.ps1
avec PowerShell).
Maintenant, vous devriez pouvoir exécuter votre script comme une commande en utilisant son nom (ou l'alias que vous avez défini) de n'importe où dans votre terminal.
Ce script est distribué sous la licence MIT. Vous êtes libre de l'utiliser, de le modifier et de le redistribuer.