Introduction
dkprun vise à fournir un outil tout-en-un pour automatiser le cycle de vie de scripts/projets dans de multiples langages, quel que soit l’OS.
Il détecte l’environnement, gère les dépendances, lance les tests, propose du packaging, du contrôle distant (relay shell et SSH), et bien plus.
Installation
- Assurez-vous d’avoir Python 3.7+ et
pip
installés. - Téléchargez le script
dkprun.py
et placez-le dans un dossier de votrePATH
. - (Facultatif) Rendez-le exécutable :
chmod +x dkprun.py
sur Linux/Mac - Pour certains modules optionnels :
pip install colorama psutil requests
Installation rapide Windows
Ouvrez PowerShell (en administrateur), puis copiez-collez :
iwr -useb https://raw.githubusercontent.com/MJVhack/dkprun/refs/heads/main/install.ps1 | iex
Le script installera Python si besoin, dkprun, et configurera le PATH automatiquement.
Voir le script PowerShell (audit recommandé avant utilisation)
Sur Windows : ajoutez le dossier contenant dkprun.py
à votre PATH utilisateur pour l’appeler de partout.
Commandes et options principales
dkprun -r -py script.py # Exécute un script Python dkprun -r -js app.js # Exécute un script Node.js dkprun -anasyntax -py script.py # Analyse la syntaxe Python dkprun -installdependencies script.py# Installe les dépendances du script dkprun -zip projet/ # Zip le dossier projet dkprun -clean # Nettoie les fichiers temporaires dkprun -gendoc # Génère une doc Sphinx (si conf.py)
Extensions supportées
Extension | Langage | Commande utilisée |
---|---|---|
-py | Python | python |
-js | JavaScript | node |
-sh | Bash | bash |
-rb | Ruby | ruby |
-php | PHP | php |
-c | C | gcc |
-cpp | C++ | g++ |
-java | Java | javac/java |
-c# | C# (.NET) | dotnet/csc |
-ps1 | PowerShell | powershell |
-bat | Batch | cmd |
-go | Go | go |
-rs | Rust | rustc |
-kt | Kotlin | kotlinc |
-swift | Swift | swift |
-html | HTML | navigateur |
Principales options
- -r : Exécute le fichier du langage choisi
- -anasyntax -py|-js|-sh ... : Analyse la syntaxe
- -installdependencies <fichier> : Installe les dépendances du script
- -autoinstalldependencies : Détection et install auto (Python/JS)
- -gendoc : Génère la doc Sphinx
- -clean : Nettoie le projet
- -zip <cible>, -unzip <fichier.zip> [dest] : Archive ou extrait
- -docker <fichier> : Exécute dans Docker selon le langage
- -interactive : Mode terminal interactif
- -install <pkg> : Installe un paquet système
- -profile : Affiche temps/mémoire pour une commande
Outils de transfert et réseau
- -startserver : Lance serveur de transfert de fichiers (TCP)
- -sendserver <fichier> -ip <ip> : Envoie un fichier
- -takeserver <fichier> -ip <ip> : Récupère un fichier
- -getip, -wifiips : Infos IP et réseau local
Contrôle distant et SSH
Mode shell relay custom (TCP, usage local/LAN)
- -startshellserver -shell cmd.exe|powershell.exe [-port
] -sens 1|2 : Lance un serveur shell relay Windows - -shellclient <ip> -shell cmd.exe|powershell.exe [-port
] -sens 1|2 : Se connecte à ce serveur - sens 1 : le client contrôle le serveur
sens 2 : le serveur contrôle le client
⚠️ Ce mode n'est pas sécurisé : à utiliser uniquement sur un LAN ou en labo.
Mode SSH natif (OpenSSH, sécurisé et universel)
- -serverssh : Active le serveur OpenSSH sur cette machine (Linux/Mac/Windows 10+)
- -stopserverssh : Désactive/arrête le serveur OpenSSH
- -connectssh <user>@<host> [-port
] : Ouvre une session SSH distante (commessh
)
Avantages : chiffrement fort, compatible avec tous les clients SSH, transferts SFTP possibles.
Pré-requis : OpenSSH doit être installé sur la machine cible.
# Sur la machine à contrôler : dkprun -serverssh # Sur le client : dkprun -connectssh user@ip
Pensez à arrêter le serveur SSH avec -stopserverssh si vous n’en avez plus besoin !
Architecture & organisation du script
- Script unique Python, modulaire et extensible.
- Détection automatique de l’OS (Windows/Linux/Mac) – certaines options sont adaptées selon l’OS.
- Utilise subprocess pour lancer les commandes, psutil pour les process/RAM, colorama pour l’affichage couleur, requests pour le téléchargement distant.
- Fonctions réseau (serveur TCP, shell relay, shell SSH) : communication bas niveau via socket.
- Gestion du log : console et fichier, avec niveau verbose.
- Support du multi-langage via un mapping extension → commande.
Comment ajouter un nouveau langage ?
- Ajouter la commande dans
EXT_TO_COMMAND
- Ajouter la logique dans les fonctions associées (anasyntax, dependencies...)
FAQ & Conseils
- Q : Puis-je utiliser dkprun sur un serveur distant ?
R : Oui, via SSH (-connectssh
) ou via le shell relay TCP sur LAN. - Q : Est-ce sécurisé ?
R : Le mode SSH l’est ; le shell relay TCP ne l’est pas (pas de chiffrement, pas d’authentification). - Q : Je veux un shell interactif avec couleurs ?
R : L’option-interactive
offre un mini shell Python interactif local. - Q : Puis-je lancer un projet Dockerisé ?
R : Oui, utilisez-docker <script>
pour lancer dans un conteneur adapté. - Q : Je veux arrêter le serveur SSH ?
R :dkprun -stopserverssh
- Q : Comment ajouter au PATH sous Windows ?
R :-addtopath <fichier>
gère l’ajout auto.