File: jack.diff

package info (click to toggle)
jack 2.99.7-7
  • links: PTS
  • area: main
  • in suites: woody
  • size: 988 kB
  • ctags: 599
  • sloc: python: 4,234; ansic: 1,908; makefile: 45
file content (156 lines) | stat: -rw-r--r-- 6,819 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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
--- ./jack	Sat Dec 15 12:37:24 2001
+++ ./jack.new	Wed Nov 14 00:09:00 2001
@@ -854,6 +854,7 @@
 height = default_height     # if we need to restore xterm
 old_tc = tcgetattr(stdin.fileno())  # terminal attributes
 revision = 0        # initial revision of freedb data
+status_all = {}             # progress info common for all track
 
 # curses related globals
 curses_init = 0             # initscr has been called
@@ -987,7 +988,7 @@
     else:
         return fmt % (num, c)
 
-def gettoc():
+def gettoc(toc_prog = toc_prog):
     "Returns track list"
     if helpers[toc_prog].has_key('toc_cmd'):
         p = popen(replace(helpers[toc_prog]['toc_cmd'], "%d", cd_device))
@@ -1003,7 +1004,7 @@
                 except IOError:
                     print "     : could not open " + cd_device + ". Check permissions and that a disc is inserted."
                 else:
-                    print "     : maybe " + ripper + " is not installed?"
+                    print "     : maybe " + toc_prog + " is not installed?"
             else:
                 print "      : try setting cd_device to your CD device, e.g. /dev/cdrom"
             exit()
@@ -1382,24 +1383,27 @@
             print "Found inexact matches choose one:"
             num = 1
             matches = []
-            buf = f.readline()
-            while buf:
+            while 1:
+                buf = f.readline()
+                if not buf:
+                    break
                 buf = rstrip(buf)
                 if buf != ".":
                     print "%2i" % num + ".) " + buf
                     matches.append(buf)
                     num = num + 1
-                buf = f.readline()
             x = -1
             while x < 0 or x > num - 1:
                 input = raw_input(" 0.) none of the above: ")
                 if not input:
-                    print "ok, aborting."
-                    exit()
+                    continue
                 try:
                     x = int(input)
                 except ValueError:
                     x = -1    # start the loop again
+                if not x:
+                    print "ok, aborting."
+                    exit()
 
             buf = matches[x-1]
             buf = split(buf, " ", 2)
@@ -2314,6 +2311,10 @@
         system("xtermset -fg black -bg white -restore -geom "+ `new_width`+ "x" + `new_height`)
     if exit_code and silent_mode:
         progress("all", "err", "abnormal exit (code %i), check %s and %s" % (exit_code, err_file, out_file))
+
+    if globals().has_key("wait_on_quit") and wait_on_quit:
+        raw_input("press ENTER to exit")
+
     sys.exit(exit_code)
 #/ end of sig_handler /#
 
@@ -2681,12 +2682,18 @@
     elif argv[i] in ("-R", "--rename-only"):
         read_freedb_file = 1
         set_id3tag = 1
+    elif argv[i] in ("-w", "--workdir"):
+        base_dir = argv[i + 1]
+        i = i + 1
+    elif argv[i] == "--search":
+        searchdirs.append(argv[i + 1])
+        i = i + 1
     elif argv[i] in ("-C", "--claim-dir"):
         claim_dir = 1
     elif argv[i] in ("-u", "--undo-rename"):
         undo_rename = 1
-    elif argv[i] in ("-X1", "--bl-a"):
-        dir_template = "%a - %l"
+    elif argv[i] == "--wait":
+        wait_on_quit = 1
     elif argv[i] in ("-G", "--id3-genre"):
         id3_genre = argv[i + 1]
         if upper(id3_genre) == "HELP":
@@ -2737,6 +2744,7 @@
         print "  -R, --rename-only:  rename according to freedb file, eg. after editing it (" + yes(read_freedb_file and set_id3tag) + ")"
         print "  -G, --id3-genre:   *set ID3 genre (empty=don't set, help=list)"
         print "  -Y, --id3-year:    +set ID3 year (0=don't set) (" + `id3_year` + ")"
+        print "  -w, --workdir:     *where to create directories and put the files"
         print "  -C, --claim-dir:    rename the dir even if it was not created by jack (" + yes(claim_dir) + ")"
         print "  -u, --undo-rename:  undo file renaming and exit (" + yes(undo_rename) + ")"
         print "  -g, --guess-toc:   *guess TOC from files (until terminating \";\") (" + yes(guess_mp3s) + ")"
@@ -2748,6 +2756,7 @@
         print "      --silent-mode:  be quiet (no screen output) (" + yes(silent_mode) + ")"
         print "      --device:      *use which cdrom device (" + cd_device + ")"
         print "      --scan-dirs:   +scan in cwd n dir levels deep, e.g. 0 to disable"
+        print "      --search:      *add dir to the list of searched dirs"
         print "      --force:        don't ask. (" + yes(force) + ")"
         print "      --remove:       remove jack.* file when done (" + yes(remove_files) + ")"
         print "      --upd-progress: re-generate progress file if \"lost\" (" + yes(upd_progress) + ")"
@@ -2758,6 +2767,7 @@
         print "      --extt-is-title: the track title is contained in the EXTT fields"
         print "      --extt-is-comment: a track comment is contained in the EXTT fields"
         print "      --todo:         print what would be done and exit (" + yes(todo_exit) + ")"
+        print "      --wait:         wait for key press before quitting"
         print "      --otf:          on-the-fly encoding *experimental* (" + yes(otf) + ")"
         print
         print "    When a freedb query is done, files are renamed and tagged accordingly."
@@ -2860,13 +2870,18 @@
             dirs = [os.getcwd()]
         else:
             dirs = searchdirs
+
         while recurse_dirs > 0:
             recurse_dirs = recurse_dirs - 1
             new_dirs = []
             for i in dirs:
                 if not i in new_dirs:
                     new_dirs.append(i)
-                subdir = os.listdir(i)
+                try:
+                    subdir = os.listdir(i)
+                except OSError, msg:
+                    print "skipped %s, %s" % (i, msg)
+                    continue
                 for j in subdir:
                     dir = path.join(i,j)
                     if path.isdir(dir) and not dir in new_dirs:
@@ -2924,6 +2939,8 @@
             os.chdir(unique_dirs[0])
         else:
             if create_dirs:
+                if not path.exists(base_dir):
+                    os.makedirs(base_dir)
                 os.chdir(base_dir)
                 dir_name = prog_name + "-" + freedb_id(all_tracks, warn=0)
                 if not path.exists(dir_name) and not path.isdir(dir_name):
@@ -3034,9 +3055,6 @@
         if k < 1 or k > len(all_tracks):
             print 'This CD has tracks 1-%d.  Ignoring request for track %d.' % (len(all_tracks), k)
             continue
-        if k > len(tracknum):
-            print 'CD only has %d tracks.  Ignoring request for track %d.' % (len(tracknum), k)
-            continue
         if all_tracks[k-1][CH] == 2:
             todo.append(all_tracks[k-1])
         else: