root/namespace-use-order @ 1504

Revision 1504, 1.1 kB (checked in by Torben Brodt, 17 months ago)

tool to order namespace use clauses

  • Property svn:executable set to *
Line 
1#!/usr/bin/php
2<?php
3if(!isset($_SERVER['argv'][1]) || in_array($_SERVER['argv'][1], array('--help', '-h', '-?'))) {
4        help();
5        exit;
6}
7$dir = $_SERVER['argv'][1];
8
9$ite = new RecursiveDirectoryIterator($dir);
10foreach (new RecursiveIteratorIterator($ite) as $filename => $cur) {
11        updateFile($filename);
12}
13
14
15function updateFile($filename) {
16        $useblock = $block = array();
17        $isUse = $updated = false;
18        foreach(file($filename) as $line) {
19                if(preg_match('/^use /', $line)) {
20                        $isUse = true;
21                        $useblock[] = $line;
22                } else {
23                        if($useblock) {
24                                $compare1 = implode("\n", $useblock);
25                                sort($useblock);
26                                $compare2 = implode("\n", $useblock);
27                                $updated = $compare1 !== $compare2;
28                                $block = array_merge($block, $useblock);
29                                $useblock = array();
30                        }
31                        $isUse = false;
32                        $block[] = $line;
33                }
34        }
35       
36        echo $filename;
37        if($updated) {
38                file_put_contents($filename, implode("", $block));
39                echo "\tchanged\n";
40        } else {
41                echo "\tunchanged\n";
42        }
43}
44
45function help() {
46
47        echo "Usage: " . basename($_SERVER['argv'][0]) . " folder [--help]\n";
48        echo "\n";
49        echo "The options are as follows:\n";
50        echo "  -?, --help\n";
51        echo "    Show this help and exit.\n\n";
52}
Note: See TracBrowser for help on using the browser.