рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

CoffeeScript рд░реЗрдЧреБрд▓рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдПрдХ рдирдИ рднрд╛рд╖рд╛ / рдРрдб-рдСрди / рдЖрдЗрд╕рд┐рдВрдЧ рд╢реБрдЧрд░ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдиреЗ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдЙрддреНрдХреГрд╖реНрдЯ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рд▓реЗрдЦ рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред



рдЗрд╕рдХреА рдЬрд╛рджреБрдИ рдкреНрд░рдХреГрддрд┐ рд╕реЗ, рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, CoffeeScript рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд░реЗрдбреА-рдЯреВ-рдпреВрдЬрд╝ js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдФрд░ рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ Node.js, Cygwin рдФрд░ Nant рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдВрдбреЛрдЬрд╝ рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рдо рдирд╣реАрдВ рд╣реИред



рддреБрдо рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реЛ?



рддреЛ, рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд░рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ:

 рдкрд░рд┐рдпреЛрдЬрдирд╛
 + --- рдХреЙрдлреА рдХреЗ рдЯреБрдХрдбрд╝реЗ
 |  \ --- рд░реЛрд╕реНрдЯ.рдХреЛрдлреА
 + --- рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
 | --- рдЙрдкрдХрд░рдг
 |  + --- рдХреЙрдлрд╝реА
 |  + --- рд╕рд╛рдЗрдЧреНрд╡рд┐рдирд▓рд╛рдЗрдЯ
 |  + --- NAnt
 |  \ --- рдиреЛрдбреНрд╕
 \ --- рд╕рдВрдХрд▓рди рдХрд░реЗрдВ 


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдореВрд▓ рдореЗрдВ compile.bat



рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ, рдЬреЛ CoffeScripts



рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ JavaScripts



рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рднреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ред



рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ:



рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░рд▓ рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ " roast.coffee



" рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░реЗрдВрдЧреЗ:

 рд░реЛрд╕реНрдЯ = (рдХреНрдпрд╛) ->
	 "рднреБрдирд╛ рд╣реБрдЖ # {рдХреНрдпрд╛}"	
 рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд░реЛрд╕реНрдЯ 'рдХреЙрдлреА!' 




CoffeeScript



рдкреИрдХреЗрдЬ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЧрд┐рдердм рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  git рдХреНрд▓реЛрди http://github.com/jashkenas/cfish-script.git 


CoffeeScript \ bin рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреЛ js рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╣реИрдВ: рдХреЗрдХ рдФрд░ рдХреЙрдлреАред рдХреЗрдХ, рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд┐рдд рдФрд░ рд░реЗрдХ рдЬреИрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдХреЙрдлреА js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИред рдпрд╣реА рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



Node.js



рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдиреЛрдб.рдЬреЗрдПрд╕ рдХреА рдмрд╛рдЗрдирд░реА рдЕрд╕реЗрдВрдмрд▓реА рдЕрдм рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рд╕рд╛рдЗрдЯ рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 0.2.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред



рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдХрджрдо рдкрд░, рдЖрдк рдХреЙрдлреА рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ PATH рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдиреЛрдб.рдЬреЗрдПрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб " coffee --version



" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 C: \ Project \ Tools \ CoffeeScript \ bin
 > рдиреЛрдб рдХреЙрдлреА - рд╡рд┐рд╕рд░реНрдЬрди
 рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг 0.9.4 


рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдХреЙрдлреА рдХреЛ рдЗрд╕рдХреЗ рдмрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдирд╣реАрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЛ рд╕рд┐рдЧреНрд╡рд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдРрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рднреА рд░рд╛рд╕реНрддреЗ рд╕рд╛рдЗрдмрд░ рд╕рд┐рдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпреВрдирд┐рдХреНрд╕ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП (рдкреВрд░реНрдг рдкрде рдХреЗ рд▓рд┐рдП):

 D: \
 > рдиреЛрдб / рд╕рд╛рдЗрдмрд░рдбреНрд░рд╛рдЗрд╡ / рд╕реА / рдкреНрд░реЛрдЬреЗрдХреНрдЯ / рдЯреВрд▓реНрд╕ / рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ / рдмрд┐рди / рдХреЙрдлреА - рд╡рд┐рд╕рд░реНрдЬрди
 рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг 0.9.4


рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЙрд▓ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ " coffee.bat



" рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдлреА рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдЖрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд┐рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 @pushdред
 @ рдПрд▓рд╕реАрдбреА / рдбреА% ~ dp0
 @ рдиреЛрдб рдХреЙрдлреА% *
 @popd


рдЕрдм рдХреЙрдлреА рдХреЙрд▓ рд╕рд░рд▓ рд╣реЛ рдЧрдИ рд╣реИ:

 D: \
 > C: \ Project \ Tools \ CoffeeScript \ bin \ Coffee --version
 рдХреЙрдлрд╝реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг 0.9.4


рдЕрдм рд╣рдо рдЕрдкрдиреЗ roast.coffee



рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдкрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 C: \ Project
 > рдЙрдкрдХрд░рдг \ рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ \ рдмрд┐рди \ рдХреЙрдлреА -c -p /cygdrive/C/Project/CfishScripts/rog.cfi
 (рдлрд╝рдВрдХреНрд╢рди () {
   var рднреБрдирд╛;
   рд░реЛрд╕реНрдЯ = рдлрд╝рдВрдХреНрд╢рди (рдХреНрдпрд╛) {
     рд╡рд╛рдкрд╕реА "рднреБрдирд╛ рд╣реБрдЖ" + (рдХреНрдпрд╛);
   };
   рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рд░реЛрд╕реНрдЯ ('рдХреЙрдлреА!'));
 })ред рдХреЙрд▓ (рдпрд╣);


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рдпрд╣ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдпреВрдирд┐рдХреНрд╕ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред



рдпрд╣рд╛рдБ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ ...



Cygwin-рд▓рд╛рдЗрдЯ



... рдпрд╛ рдмрд▓реНрдХрд┐, рдЙрд╕рдХреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ cygpath.exeред



рд╕рд╛рдЗрдЧрд╡рд┐рди-рд▓рд╛рдЗрдЯ рдмрд╣реБрдд рднрд╛рд░реА рдлрд╕рд▓реА рд╕рд╛рдЗрдЧрд╡рд┐рди рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдХреЗ рдХрд╛рд░рдг рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рдБ, рдореБрдЭреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ)ред рдпрд╣рд╛рдБ Cygwin-Lite рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕рд╛рдЗрдмрд░рдкреИрдЧ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдХрд┐ рдЗрд╕реЗ рдкреИрдХреЗрдЬ рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдХрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдирдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдмрд░рд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

 cygpath -a -u windows-filename


рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд░рд╛рд╕реНрддреЛрдВ рдХреЛ рдкреВрд░реНрдг рдпреВрдирд┐рдХреНрд╕ рдкрдереЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:

 C: \ Project \ Tools \ CygwinLite \ bin
 > cygpath.exe -a -u cygpath.exe
 /cygdrive/c/Project/Tools/CygwinLite/bin/cygpath.exe


Compile.bat



рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдЕрдВрдд рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦреЗрдВ!

рдкреНрд░рдпреЛрдЧ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдФрд░ рдШрд░-рдирд┐рд░реНрдорд┐рдд рдХреЙрдлреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

 @ рдЬрд░рд╛ рд╣рдЯрдХреЗ

 рд░реЗрдо рд╕реНрд░реЛрдд рд▓рд┐рдкрд┐рдпреЛрдВ рдлрд╝реЛрд▓реНрдбрд░
 sourceDir = CoffeeScripts рд╕реЗрдЯ рдХрд░реЗрдВ

 рд╕рдВрдХрд▓рд┐рдд рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП REM рдлрд╝реЛрд▓реНрдбрд░
 рд╕реЗрдЯ рдбреЗрд╕реНрдЯрд┐рд░ = рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕

 REM рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдлрд╝реЛрд▓реНрдбрд░
 рд╕реЗрдЯ cygwinDir = рдЯреВрд▓ \ CygwinLite \ bin
 CoffeeDir = рдЯреВрд▓реНрд╕ \ CoffeeScript \ bin рд╕реЗрдЯ рдХрд░реЗрдВ
 рдиреЛрдбрдбрд┐рдЕрд░ = рдЯреВрд▓реНрд╕ \ рдиреЛрдбрдЬ рд╕реЗрдЯ рдХрд░реЗрдВ

 REM рдЧрдВрддрд╡реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреЙрдлреА рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдХреНрд╕ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
 / f %% o o рдХреЗ рд▓рд┐рдП ('% cygwinDir% \ cygpath.exe -a -u "% destDir%" ") рдЖрдЙрдЯрдкреБрдЯ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ = %% o
 for / f %% c in ('% cygwinDir% \ cygpath.exe -a -u "% CoffeeDir% \ рдХреЙрдлреА")) CoffeePath = %% c рд╕реЗрдЯ рдХрд░реЗрдВ

 рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП REM ...
 %% f рдХреЗ рд▓рд┐рдП (% sourceDir% \ *ред рдХреЙрдлрд╝реА) рдХрд░рддреЗ рд╣реИрдВ (
   REM ... рдЗрд╕рдХрд╛ рдпреВрдирд┐рдХреНрд╕ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, ...
   / f %% s рдХреЗ рд▓рд┐рдП ('% cygwinDir% \ cygpath.exe -a -u %% f') (
     рд░реЗрдо ... рдФрд░ рдЗрд╕реЗ рдЧрдВрддрд╡реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ!
     % рдиреЛрдбрдбрд┐рд░% \ рдиреЛрдб% рдХреЙрдлреАрдкреИрде% -c -рдУ% рдЖрдЙрдЯрдкреБрдЯрдкрде%%% s
   )
 )

 рдЗрдХреЛ рдбрди!


compile.bat



рдЪрд▓рд╛рдПрдВ рдФрд░ JavaScripts



рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд roast.js



рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

 C: \ Project
 > рд╕рдВрдХрд▓рди рдХрд░реЗрдВ
 рд╣реЛ рдЧрдпрд╛!


 C: \ Project
 > JavaScripts \ roast.js рдЯрд╛рдЗрдк рдХрд░реЗрдВ
 (рдлрд╝рдВрдХреНрд╢рди () {
   var рднреБрдирд╛;
   рд░реЛрд╕реНрдЯ = рдлрд╝рдВрдХреНрд╢рди (рдХреНрдпрд╛) {
     рд╡рд╛рдкрд╕реА "рднреБрдирд╛ рд╣реБрдЖ" + (рдХреНрдпрд╛);
   };
   рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рд░реЛрд╕реНрдЯ ('рдХреЙрдлреА!'));
 })ред рдХреЙрд▓ (рдпрд╣);


рд╣реБрд░реНрд░реЗ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рд▓реЗрдХрд┐рди рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдЪрд╛рдирдХ рдХреБрдЫ рдЪрд╛рд╣рд┐рдПред



рдиреИрдиреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛



рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ NAnt рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдПрдХ рдЫреЛрдЯрд╛ рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдоред



NAnt .NET рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реБрд▓реНрдХ рдЙрдкрдХрд░рдг рд╣реИред рдПрдХ рд╕рдордп рдореЗрдВ, NAnt рдХреЛ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ (.NET рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ рд╕рд┐рд╕реНрдЯрдо) .NET .NET рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ .NET рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫреА рдХрд▓реНрдкрдирд╛ рдХреЗ рд╕рд╛рде, рдЗрд╕ рдЪреАрдЬ рдХреЛ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, NAnt рдХреЛ рд╡рд┐рдВрдбреЛ рдХреЗ рдиреАрдЪреЗ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдореЛрдиреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ: рдпрд╣ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ, рдЕрдЪреНрдЫреА рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдФрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВред

рдиреИрдиреНрдЯ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ:



рдФрд░ рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдиреЗрдВрдЯ рдХрд╛ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдФрд░ рдЕрдм рд╣рдо рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдкрд┐рдЫрд▓реЗ рд╕рдВрдХрд▓рди рдХреЗ рд╕рдорд╛рди рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ред

 <? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0"?>
 <рдкреНрд░реЛрдЬреЗрдХреНрдЯ xmlns = "http://nant.sf.net/release/0.90-alpha1/nant.xsd" рдирд╛рдо = "рдХреЙрдлреА рдкрд░реАрдХреНрд╖рдг">

   <! - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред  рдлрд╝рдВрдХреНрд╢рди $ {cygpath} -> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП cygwin рдХреЗ рд▓рд┐рдП рдкрде рдЖрд╡рд╢реНрдпрдХ рд╣реИ
   <Setenv>
     <рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдирд╛рдо = "рдкрде" рдорд╛рди = "рдЙрдкрдХрд░рдг \ CygwinLite \ bin; рдЙрдкрдХрд░рдг \ рдиреЛрдбрдЬ;% рдкрде%" />
   </ Setenv>
  
   <foreach item = "рдлрд╝рд╛рдЗрд▓" рдЧреБрдг = "рдлрд╝рд╛рдЗрд▓ рдирд╛рдо">
     <рдореЗрдВ>
       <рдЖрдЗрдЯрдо рдЖрдзрд╛рд░рд┐рдд = "рдХреЙрдлреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ">
         <рдирд╛рдо = "*ред рдХреЙрдлрд╝реА" /> рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
       </ рдЖрдЗрдЯрдо>
     </ рдореЗрдВ>
     <Do>
       <рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдо = "рдиреЛрдб">
         <arg line = "$ {cygpath :: get-unix-path ('рдЯреВрд▓реНрд╕ \ рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ \ рдмрд┐рди \ рдХреЙрдлреА')}" />        
         <arg line = "- c" />
         <arg line = "- o $ {cygpath :: get-unix-path (рдкрде :: get-full-path ('JavaScripts'))}" />
         <arg line = "$ {cygpath :: get-unix-path (рдкрде :: get-full-path (рдлрд╝рд╛рдЗрд▓ рдирд╛рдо))}" />
       </ Exec>
     </ Do>
   </ Foreach>
 </ рдкрд░рд┐рдпреЛрдЬрдирд╛>


рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ " compile.build



" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ " compile.bat



" compile.bat



:

 рдЙрдкрдХрд░рдг \ Nant \ bin \ nant.exe -buildfile: compile.build


рдХреЙрдлреА рдХреЛ рд░реЛрд╕реНрдЯ рдХрд░реЗрдВ



 C: \ Project \ Java рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕
 > рдиреЛрдб рд░реЛрд╕реНрдЯ.рдЬреЗрдПрд╕
 рднреБрдиреА рд╣реБрдИ рдХреЙрдлрд╝реА! 


рд╕реМрднрд╛рдЧреНрдп рд╣реИ



All Articles