Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- if(empty($argv[1]))
- {
- echo "Merci d'entrer une commande MyGitLight. Tapez la commande 'help' si vous avez besoin d'aide.".PHP_EOL;
- }
- elseif ($argv[1] == "init")
- {
- if(substr($argv[2], -1, 1) !== "/")
- {
- $argv[2] .= "/";
- }
- if(is_dir($argv[2]) == true)
- {
- if(is_writable($argv[2]) == true)
- {
- if(is_dir($argv[2].".MyGitLight") == false)
- {
- mkdir($argv[2].".MyGitLight");
- $file = file_get_contents("MyGitLight.php");
- $newFile = fopen($argv[2]."/.MyGitLight/MyGitLight.php", "w+");
- fwrite($newFile, $file);
- mkdir($argv[2]."/.MyGitLight/add");
- mkdir($argv[2]."/.MyGitLight/log");
- }
- else
- {
- echo "this fodler already has a myGitLight".PHP_EOL;
- }
- }
- else
- {
- echo "could not access folder: bad permissions".PHP_EOL;
- }
- }
- else
- {
- echo "could not access ".$argv[2].PHP_EOL;
- }
- }
- elseif($argv[1] == "add")
- {
- if($argv[2] == NULL)
- {
- $src = __DIR__;
- $dest = __DIR__."/.MyGitLight/add";
- system("rsync -av --progress --exclude '.MyGitLight' $src $dest");
- }
- else
- {
- $count = count($argv);
- for($i = 2; $i < $count; $i++)
- {
- if(is_file($argv[$i]))
- {
- $src = $argv[$i];
- $dest = __DIR__."/.MyGitLight/add";
- system("rsync --progress $src $dest");
- }
- else
- {
- $handle = opendir($argv[$i]);
- while ($entry = readdir($handle))
- {
- $valeur = file_get_contents("$argv[$i]/$entry", FILE_USE_INCLUDE_PATH);
- $src = $argv[$i];
- $dest = __DIR__."/.MyGitLight/add/".$dir;
- system("rsync -av --progress --exclude '.MyGitLight' $src $dest");
- }
- }
- }
- }
- }
- elseif($argv[1] == "commit")
- {
- $dir = "./.MyGitLight/add/";
- $files = scandir($dir);
- static $id=0;
- $id++;
- $count = count($files);
- $str = "";
- for ($i=1; $i < $count; $i++)
- {
- if (is_file($files[$i]))
- {
- $valeur = file_get_contents($files[$i]);
- $str = $str . $files[$i] . "[name]" . $valeur . "**";
- }
- elseif (is_dir($files[$i]) && $files[$i] != "." && $files[$i] != "..")
- {
- $handle = opendir($files[$i]);
- while ($entry = readdir($handle))
- {
- if ($entry != "." && $entry != ".." && is_file("$files[$i]/$entry"))
- {
- $valeeur = file_get_contents("$files[$i]/$entry", FILE_USE_INCLUDE_PATH);
- $str = $str . $files[$i] . "[dossier]" . $entry . "[nameDir]" . $valeeur . "**";
- }
- }
- }
- }
- file_put_contents(__DIR__."/.MyGitLight/log/"."[$id] $argv[2].mytar", $str);
- }
- elseif($argv[1] == "rm")
- {
- for($i = 2; $i < count($argv); $i++)
- {
- if(file_exists(__DIR__."/".$argv[$i]) == true && file_exists(__DIR__."/.MyGitLight/add/".$argv[$i]) == true)
- {
- if(is_dir(__DIR__."/".$argv[$i]) == true && is_dir(__DIR__."/.MyGitLight/add/".$argv[$i]) == true)
- {
- system("rm -rf $argv[$i]");
- system("rm -rf ".escapeshellarg(__DIR__."/.MyGitLight/add/".$argv[$i]));
- }
- else
- {
- unlink($argv[$i]);
- unlink(__DIR__."/.MyGitLight/add/".$argv[$i]);
- }
- }
- }
- }
- elseif($argv[1] == "log")
- {
- $files = system("ls -l ./.MyGitLight/log");
- echo $files.PHP_EOL;
- }
- elseif($argv[1] == "help")
- {
- function recu()
- {
- echo "Merci d'entrer le nom de la commande pour laquelle vous avez besoin d'aide (init, add, commit, rm, log ou exit pour quitter le manuel d'aide) :".PHP_EOL;
- $handle = fopen("php://stdin", "r");
- $var1 = trim(fgets($handle));
- $var1 = explode(" ", $var1);
- $var2 = $var1[0];
- if($var1[0] == "init")
- {
- echo "\033[1m" . "NOM" . "\033[0m".PHP_EOL;
- echo " init - Permet de créer une copie du code source du programme executable dans un dossier .MyGitLight.".PHP_EOL.PHP_EOL;
- echo "\033[1m" . "UTILISATION" . "\033[0m".PHP_EOL;
- echo " init C - C est le chemin d'accès pour déposer la copie du programme dans son dossier .MyGitLight.".PHP_EOL.PHP_EOL;
- recu();
- }
- elseif($var1[0] == "add")
- {
- echo "\033[1m" . "NOM" . "\033[0m".PHP_EOL;
- echo " add - Permet de copier le repertoire courant si utilisé sans argument ou plusieurs fichiers/dossiers passés en argument dans le dossier '.MyGitLight/add'.".PHP_EOL.PHP_EOL;
- echo "\033[1m" . "UTILISATION (pas encore implémenté)" . "\033[0m".PHP_EOL;
- echo " add F - F est le nom du fichier/dossier à copier. Il peut être suivi par d'autre nom de fichier/dossier.".PHP_EOL.PHP_EOL;
- recu();
- }
- elseif($var1[0] == "commit")
- {
- echo "\033[1m" . "NOM" . "\033[0m".PHP_EOL;
- echo " commit - Permet de créer une tarball de tous les fichiers/dossiers présents dans le dossier '.MyGitLight/add' qui sera stocké dans le dossier '.MyGitLight/log'.".PHP_EOL.PHP_EOL;
- echo "\033[1m" . "UTILISATION (pas encore implémenté)" . "\033[0m".PHP_EOL;
- echo " comit M - M correspond au nom souhaité pour la création de la tarball.".PHP_EOL.PHP_EOL;
- recu();
- }
- elseif($var1[0] == "rm")
- {
- echo "\033[1m" . "NOM" . "\033[0m".PHP_EOL;
- echo " rm - Permet de supprimer des fichiers/dossiers passés en argument s'ils sont présents dans le dossier de suivi de la commande add et dans le répertoire de travail.".PHP_EOL.PHP_EOL;
- echo "\033[1m" . "UTILISATION" . "\033[0m".PHP_EOL;
- echo " rm F - F est le nom du fichier/dossier à supprimer. Il peut être suivi par d'autre nom de fichier/dossier.".PHP_EOL.PHP_EOL;
- recu();
- }
- elseif($var1[0] == "log")
- {
- echo "\033[1m" . "NOM" . "\033[0m".PHP_EOL;
- echo " log - Permet d'afficher la liste des tarballs réalisées dans le dossier '.MyGitLight/log'.".PHP_EOL.PHP_EOL;
- echo "\033[1m" . "UTILISATION (pas encore implémenté)" . "\033[0m".PHP_EOL;
- echo " log - S'utilise sans arguments.".PHP_EOL.PHP_EOL;
- recu();
- }
- elseif($var1[0] == "exit")
- {
- exit();
- }
- else
- {
- echo "Votre commande n'est pas reconnue.".PHP_EOL;
- recu();
- }
- }
- recu();
- }
- else
- {
- echo "Commande MyGitLight non reconnue. Tapez la commande 'help' si vous avez besoin d'aide.".PHP_EOL;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement