summaryrefslogtreecommitdiff
path: root/tools/test-renamer
blob: 5a7fc3d78c3953d8f507a0da21927b2871782ba8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/env bash
#
# Despite its shameful hackiness, checked in for posterity.
# It'll live on forever in the git history; then I can remove it.

# set -e
shopt -s nullglob

cd $(dirname $0)/../test

rename_pattern='^.*/bug[0-9]+.*?(\.scala)?$'

targets ()
{
  ls -d pending/*/* disabled/*/* | egrep "$rename_pattern"
}

showRun ()
{
  echo "$@"
  "$@"
}

for path in $(targets); do
  if [[ -f "$path" ]]; then
    # echo "$path"
    dir=$(dirname "$path")
    file=$(basename "$path")
    base=${file%%.scala}
    num=${base##bug}

    (cd "$dir" && 
      for file in ${base}.*; do
        ext=${file##*.}
        newname="t${num}.${ext}"
        
        if [[ -e "$newname" ]]; then
          echo "Hey, $newname already exists."
        else
          showRun perl -pi -e "'s/bug$num\b/t$num/g;'" "$file"
          showRun mv "$file" "$newname"
        fi
      done
    )
  fi
  
  if [[ -d "$path" ]]; then
    dir=$(dirname "$path")
    file=$(basename "$path")
    base="$file"
    num=${base##bug}
    
    (cd "$dir" &&
      for file in $file ${file}.*; do
        ext=${file##*.}
        if [[ "$ext" != "$file" ]]; then
          newname="t${num}.${ext}"
        else
          newname="t${num}"
          for file0 in ${file}/*; do
            showRun perl -pi -e "'s/bug$num\b/t$num/g;'" "$file0"
          done
        fi
        
        if [[ -e "$newname" ]]; then
          echo "Hey, $newname already exists."
        else
          if [[ -f "$file" ]]; then
            showRun perl -pi -e "'s/bug$num\b/t$num/g;'" "$file"
          fi
          showRun mv "$file" "$newname"
        fi
      done
    )
    
  fi

done
# 
# for d in files/*/*; do
#   [[ -d "$d" ]] && do_dir "$d"
# done