Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.17 KB | None | 0 0
  1. <?php
  2.  
  3. if(empty($argv[1]))
  4. {
  5.     echo "Merci d'entrer une commande MyGitLight. Tapez la commande 'help' si vous avez besoin d'aide.".PHP_EOL;
  6. }
  7.  
  8. elseif ($argv[1] == "init")
  9. {
  10.   if(substr($argv[2], -1, 1) !== "/")
  11.   {
  12.       $argv[2] .= "/";
  13.   }
  14.   if(is_dir($argv[2]) == true)
  15.   {
  16.     if(is_writable($argv[2]) == true)
  17.     {
  18.           if(is_dir($argv[2].".MyGitLight") == false)
  19.           {
  20.             mkdir($argv[2].".MyGitLight");
  21.             $file = file_get_contents("MyGitLight.php");
  22.             $newFile = fopen($argv[2]."/.MyGitLight/MyGitLight.php", "w+");
  23.             fwrite($newFile, $file);
  24.             mkdir($argv[2]."/.MyGitLight/add");
  25.             mkdir($argv[2]."/.MyGitLight/log");
  26.           }
  27.           else
  28.           {
  29.               echo "this fodler already has a myGitLight".PHP_EOL;
  30.           }
  31.     }
  32.     else
  33.     {
  34.         echo "could not access folder: bad permissions".PHP_EOL;
  35.     }
  36.   }
  37.   else
  38.   {
  39.       echo "could not access ".$argv[2].PHP_EOL;
  40.   }
  41. }
  42.  
  43. elseif($argv[1] == "add")
  44. {
  45.   $src = __DIR__;
  46.   $dest = __DIR__."/.MyGitLight/add";
  47.  
  48.   shell_exec("cp --recursive $src $dest");
  49.  
  50.   echo "<H3>Copy Paste completed!</H3>";
  51. }
  52.  
  53. elseif($argv[1] == "commit")
  54. {
  55.     $dir = "./.MyGitLight/add/";
  56.     $files = scandir($dir);
  57.  
  58.     static $id=0;
  59.     $id++;
  60.  
  61.     $count = count($files);
  62.     $str = "";
  63.     for ($i=1; $i < $count; $i++)
  64.     {
  65.       if (is_file($files[$i]))
  66.       {
  67.         $valeur = file_get_contents($files[$i]);
  68.         $str = $str . $files[$i] . "[name]" . $valeur . "**";
  69.       }
  70.  
  71.       elseif (is_dir($files[$i]) && $files[$i] != "." && $files[$i] != "..")
  72.       {
  73.         $handle = opendir($files[$i]);
  74.         while ($entry = readdir($handle))
  75.         {
  76.           if ($entry != "." && $entry != ".." && is_file("$files[$i]/$entry"))
  77.           {
  78.             $valeeur = file_get_contents("$files[$i]/$entry", FILE_USE_INCLUDE_PATH);
  79.             $str = $str . $files[$i] . "[dossier]" . $entry . "[nameDir]" . $valeeur . "**";
  80.           }
  81.         }
  82.       }
  83.     }
  84.     file_put_contents(__DIR__."/.MyGitLight/log/"."[$id] $argv[2].mytar", $str);
  85. }
  86.  
  87. elseif($argv[1] == "rm")
  88. {
  89.     for($i = 2; $i < count($argv); $i++)
  90.     {
  91.         if(file_exists(__DIR__."/".$argv[$i]) == true && file_exists(__DIR__."/.MyGitLight/add/".$argv[$i]) == true)
  92.         {
  93.             if(is_dir(__DIR__."/".$argv[$i]) == true && is_dir(__DIR__."/.MyGitLight/add/".$argv[$i]) == true)
  94.             {
  95.               system("rm -rf $argv[$i]");
  96.               system("rm -rf ".escapeshellarg(__DIR__."/.MyGitLight/add/".$argv[$i]));
  97.             }
  98.             else
  99.             {
  100.             unlink($argv[$i]);
  101.             unlink(__DIR__."/.MyGitLight/add/".$argv[$i]);
  102.             }
  103.         }
  104.     }
  105. }
  106.  
  107. elseif($argv[1] == "log")
  108. {
  109.     $files = system("ls -l ./.MyGitLight/log");
  110.     echo $files.PHP_EOL;
  111. }
  112.  
  113. elseif($argv[1] == "help")
  114. {
  115.   function recu()
  116.   {
  117.       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;
  118.       $handle = fopen("php://stdin", "r");
  119.       $var1 = trim(fgets($handle));
  120.       $var1 = explode(" ", $var1);
  121.       $var2 = $var1[0];
  122.           if($var1[0] == "init")
  123.           {
  124.               echo "\033[1m" . "NOM" . "\033[0m".PHP_EOL;
  125.               echo "        init - Permet de créer une copie du code source du programme executable dans un dossier .MyGitLight.".PHP_EOL.PHP_EOL;
  126.               echo "\033[1m" . "UTILISATION" . "\033[0m".PHP_EOL;
  127.               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;
  128.               recu();
  129.           }
  130.           elseif($var1[0] == "add")
  131.           {
  132.             echo "\033[1m" . "NOM" . "\033[0m".PHP_EOL;
  133.             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;
  134.             echo "\033[1m" . "UTILISATION (pas encore implémenté)" . "\033[0m".PHP_EOL;
  135.             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;
  136.             recu();
  137.           }
  138.           elseif($var1[0] == "commit")
  139.           {
  140.             echo "\033[1m" . "NOM" . "\033[0m".PHP_EOL;
  141.             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;
  142.             echo "\033[1m" . "UTILISATION (pas encore implémenté)" . "\033[0m".PHP_EOL;
  143.             echo "        comit M - M correspond au nom souhaité pour la création de la tarball.".PHP_EOL.PHP_EOL;
  144.             recu();
  145.           }
  146.           elseif($var1[0] == "rm")
  147.           {
  148.             echo "\033[1m" . "NOM" . "\033[0m".PHP_EOL;
  149.             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;
  150.             echo "\033[1m" . "UTILISATION" . "\033[0m".PHP_EOL;
  151.             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;
  152.             recu();
  153.           }
  154.           elseif($var1[0] == "log")
  155.           {
  156.             echo "\033[1m" . "NOM" . "\033[0m".PHP_EOL;
  157.             echo "        log - Permet d'afficher la liste des tarballs réalisées dans le dossier '.MyGitLight/log'.".PHP_EOL.PHP_EOL;
  158.             echo "\033[1m" . "UTILISATION (pas encore implémenté)" . "\033[0m".PHP_EOL;
  159.             echo "        log - S'utilise sans arguments.".PHP_EOL.PHP_EOL;
  160.             recu();
  161.           }
  162.           elseif($var1[0] == "exit")
  163.           {
  164.               exit();
  165.           }
  166.           else
  167.           {
  168.               echo "Votre commande n'est pas reconnue.".PHP_EOL;
  169.               recu();
  170.           }
  171.     }
  172.     recu();
  173. }
  174.  
  175. else
  176. {
  177.     echo "Commande MyGitLight non reconnue. Tapez la commande 'help' si vous avez besoin d'aide.".PHP_EOL;
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement