35
35
36
36
.. versionadded:: 0.4.0
37
37
38
- .. option:: -w, --watch
39
-
40
- Watch file for changes. Requires the second argument (output CSS
41
- filename).
42
-
43
- .. note:: Note that ``--watch`` does not understand imports. Due to this, the
44
- option is scheduled for removal in a future version. It is suggested to
45
- use a third party tool which implements intelligent watching functionality.
46
-
47
- .. versionadded:: 0.4.0
48
- .. deprecated:: 0.11.2
49
-
50
38
.. option:: -p, --precision
51
39
52
40
Set the precision for numbers. Default is 5.
75
63
import functools
76
64
import io
77
65
import optparse
78
- import os
79
66
import sys
80
- import time
81
67
82
68
import sass
83
69
@@ -107,9 +93,6 @@ def main(argv=sys.argv, stdout=sys.stdout, stderr=sys.stderr):
107
93
dest = 'include_paths' , action = 'append' ,
108
94
help = 'Path to find "@import"ed (S)CSS source files. '
109
95
'Can be multiply used.' )
110
- parser .add_option ('-w' , '--watch' , action = 'store_true' ,
111
- help = 'Watch file for changes. Requires the second '
112
- 'argument (output css filename).' )
113
96
parser .add_option (
114
97
'-p' , '--precision' , action = 'store' , type = 'int' , default = 5 ,
115
98
help = 'Set the precision for numbers. [default: %default]'
@@ -136,73 +119,46 @@ def main(argv=sys.argv, stdout=sys.stdout, stderr=sys.stderr):
136
119
error ('-m/-g/--sourcemap requires the second argument, the output '
137
120
'css filename.' )
138
121
return 2
139
- elif options .watch and len (args ) < 2 :
140
- parser .print_usage (stderr )
141
- error ('-w/--watch requires the second argument, the output css '
142
- 'filename.' )
143
- return 2
144
- else :
145
- pass
146
- while True :
147
- try :
148
- mtime = os .stat (filename ).st_mtime
149
- if options .source_map :
150
- source_map_filename = args [1 ] + '.map' # FIXME
151
- css , source_map = sass .compile (
152
- filename = filename ,
153
- output_style = options .style ,
154
- source_comments = options .source_comments ,
155
- source_map_filename = source_map_filename ,
156
- output_filename_hint = args [1 ],
157
- include_paths = options .include_paths ,
158
- precision = options .precision
159
- )
160
- else :
161
- source_map_filename = None
162
- source_map = None
163
- css = sass .compile (
164
- filename = filename ,
165
- output_style = options .style ,
166
- source_comments = options .source_comments ,
167
- include_paths = options .include_paths ,
168
- precision = options .precision
169
- )
170
- except (IOError , OSError ) as e :
171
- error (e )
172
- return 3
173
- except sass .CompileError as e :
174
- error (e )
175
- if not options .watch :
176
- return 1
177
- except KeyboardInterrupt :
178
- break
122
+
123
+ try :
124
+ if options .source_map :
125
+ source_map_filename = args [1 ] + '.map' # FIXME
126
+ css , source_map = sass .compile (
127
+ filename = filename ,
128
+ output_style = options .style ,
129
+ source_comments = options .source_comments ,
130
+ source_map_filename = source_map_filename ,
131
+ output_filename_hint = args [1 ],
132
+ include_paths = options .include_paths ,
133
+ precision = options .precision
134
+ )
179
135
else :
180
- if len (args ) < 2 :
181
- print (css , file = stdout )
182
- else :
183
- with io .open (args [1 ], 'w' , encoding = 'utf-8' , newline = '' ) as f :
184
- f .write (css )
185
- if options .watch :
186
- print (filename , 'is just compiled to' , args [1 ],
187
- file = stdout )
188
- if source_map_filename :
189
- with io .open (
190
- source_map_filename , 'w' , encoding = 'utf-8' , newline = '' ,
191
- ) as f :
192
- f .write (source_map )
193
- if options .watch : # pragma: no cover
194
- # FIXME: we should utilize inotify on Linux, and FSEvents on Mac
195
- while True :
196
- try :
197
- st = os .stat (filename )
198
- if st .st_mtime > mtime :
199
- print (filename , 'changed; recompile...' , file = stdout )
200
- break
201
- time .sleep (0.5 )
202
- except KeyboardInterrupt :
203
- return 0
136
+ source_map_filename = None
137
+ source_map = None
138
+ css = sass .compile (
139
+ filename = filename ,
140
+ output_style = options .style ,
141
+ source_comments = options .source_comments ,
142
+ include_paths = options .include_paths ,
143
+ precision = options .precision
144
+ )
145
+ except (IOError , OSError ) as e :
146
+ error (e )
147
+ return 3
148
+ except sass .CompileError as e :
149
+ error (e )
150
+ return 1
151
+ else :
152
+ if len (args ) < 2 :
153
+ print (css , file = stdout )
204
154
else :
205
- break
155
+ with io .open (args [1 ], 'w' , encoding = 'utf-8' , newline = '' ) as f :
156
+ f .write (css )
157
+ if source_map_filename :
158
+ with io .open (
159
+ source_map_filename , 'w' , encoding = 'utf-8' , newline = '' ,
160
+ ) as f :
161
+ f .write (source_map )
206
162
return 0
207
163
208
164
0 commit comments