@@ -660,6 +660,21 @@ private function cleanData($data)
660
660
return $ cleanedData ;
661
661
}
662
662
663
+ /**
664
+ * Generate a progress bar based on the input parameters
665
+ *
666
+ * @param integer $done
667
+ * @param integer $total
668
+ * @return string
669
+ */
670
+ private function progress ($ done , $ total )
671
+ {
672
+ $ perc = floor (($ done / $ total ) * 100 );
673
+ $ left = 100 - $ perc ;
674
+
675
+ return sprintf ("\033[0G \033[2K[%'= {$ perc }s>%- {$ left }s] - {$ perc }%% - {$ done }/ {$ total }" , '' , '' );
676
+ }
677
+
663
678
/**
664
679
* Test markdown converter
665
680
*
@@ -672,14 +687,15 @@ private function runTests(array $args)
672
687
$ formatter = ' %s. %s ' . self ::WHITE . ': %s ' . PHP_EOL ;
673
688
$ output = self ::WHITE ;
674
689
675
- echo 'Running tests... ' ;
676
-
677
690
$ files = glob ("{$ src }/docx/*.docx " );
678
691
$ size = sizeof ($ files );
679
692
$ charCount = 0 ;
680
693
681
694
foreach ($ files as $ n => $ file1 ) {
682
695
$ n ++;
696
+
697
+ echo $ this ->progress ($ n , $ size );
698
+
683
699
$ file2 = basename ($ file1 , '.docx ' ) . '.md ' ;
684
700
685
701
$ markdown = $ this ->docx2md (array ('' , '-i ' , $ file1 , $ file2 ), true )
@@ -706,7 +722,7 @@ private function runTests(array $args)
706
722
$ output .= $ sprintf ;
707
723
}
708
724
709
- echo ' finished ' . ' ' . self :: GREEN . html_entity_decode ( ' √ ' ) . ' ' . self :: GREEN . PHP_EOL . rtrim ($ output , PHP_EOL );
725
+ echo PHP_EOL . rtrim ($ output , PHP_EOL );
710
726
711
727
if ($ args ) {
712
728
// If performing conversion after running tests, print a separator
0 commit comments