File: move1

package info (click to toggle)
apt-move 4.1.21
  • links: PTS
  • area: main
  • in suites: woody
  • size: 160 kB
  • ctags: 62
  • sloc: sh: 818; awk: 205; cpp: 113; makefile: 63; perl: 53
file content (54 lines) | stat: -rwxr-xr-x 794 bytes parent folder | download
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
#!/usr/bin/awk -f
# $Id: move1,v 1.4 2000/11/01 11:21:15 herbert Exp $

BEGIN {
	out = ARGV[1]
	dist = ARGV[2]
	ARGC = 1
	max = 0
	printf("") > out
}

NF < 3 {
	source = 1
	prev = ""
	next
}

prev != $2 {
	prev = $2
	count = 0
}

count >= max {
	print "d { set -e; mkdir " max "; cd " max "; xargs mkdir -p; } " \
	      "< ../.apt-move/" dist ".dirs"
	print max++ > out
}

source {
	while ((ret = getline line < $3) > 0) {
		if (tolower(line) ~ /^files:/) {
			break
		}
	}
	if (ret < 0) {
		next
	}
	olddir = $3
	sub(/[^\/]*$/, "", olddir)
	newdir = $1
	sub(/[^\/]*$/, "", newdir)
	while ((ret = getline line < $3) > 0) {
		if (line !~ /^ /) {
			break
		}
		split(line, linef)
		print "n " olddir linef[3] " " count "/" newdir linef[3]
	}
	close($3)
}

{
	print "m " $3 " " count++ "/" $1
}