View difference between Paste ID: Afh3WFGR and WAJ9inRx
SHOW: | | - or go back to the newest paste.
1
#!/usr/bin/env awk
2
3
BEGIN {
4
    # helper
5
    if ( !ARGV[2] || ARGV[1] == "--help" )
6
    {
7
	print "\nUsage: awk -f film.awk [speed in second] [how many cycles] [cursorup] [bash clear]\n"
8
	print "\n[cursorup]: 0, no tput cuu1; 1, yes tput cuu1"
9
	print "\n[bash clear]: 0, tput clear; 1, clear; command for each cycle"
10
	print "\n[bash clear]: 2, tput clear; 3, clear; command for each print"
11
	exit 1
12
    }
13
14
    # parameters
15
    pos = 0
16
    sec = ARGV[1]
17
    how = ARGV[2]
18
    cup = ARGV[3]
19
    bas = ARGV[4]
20
    "tput clear" | getline Clear;
21
    "tput cuu1" | getline CursorUp;
22
    data[1] = "|"
23
    data[2] = "/"
24
    data[3] = "-"
25
    data[4] = "\\"
26
    
27
    # main
28
    for ( ; pos <= how; pos++ )
29
    {
30
	clearEcho( 0 )
31
	for ( c in data )
32
	{
33
	    clearEcho( 2 )
34
	    print data[c]
35
	    if ( cup )
36
		printf CursorUp
37
	    system( "sleep "sec )
38
	}
39
    }
40
}
41
42
# function
43
function clearEcho ( ori )
44
{
45
    if ( !ori )
46
    {
47
	ori = 0
48
	num = 1
49
    }
50
    else
51
	num = ori + 1
52
    if ( bas == ori )
53
	printf Clear;
54
    else
55
	if ( bas == num )
56
	    system( "clear" )
57
    if ( bas == ori || bas == num )
58
	print "cycle "pos
59
}