@@ -19,6 +19,14 @@ MRuby::Gem::Specification.new('picoruby-shell') do |spec|
1919 spec . add_dependency 'picoruby-machine' # for shell executables
2020 end
2121
22+ exe_dir = "#{ build_dir } /shell_executables"
23+ if Dir . exist? ( exe_dir )
24+ Dir . each_child ( exe_dir ) do |filename |
25+ filepath = File . join ( exe_dir , filename )
26+ FileUtils . rm ( filepath )
27+ end
28+ end
29+
2230 executables_src = "#{ build_dir } /shell_executables.c.inc"
2331 if File . exist? ( executables_src )
2432 File . delete ( executables_src )
@@ -45,20 +53,21 @@ MRuby::Gem::Specification.new('picoruby-shell') do |spec|
4553 file executables_src do |t |
4654 mkdir_p File . dirname t . name
4755 pathmap = File . read ( "#{ dir } /shell_executables/_path.txt" ) . lines . map ( &:chomp ) . map do
48- p = Pathname . new ( _1 )
49- { dir : p . dirname . to_s , basename : p . basename . to_s }
56+ pn = Pathname . new ( _1 )
57+ { dir : pn . dirname . to_s , basename : pn . basename . to_s }
5058 end
51- open ( t . name , 'w+ ' ) do |f |
59+ open ( t . name , 'w' ) do |f |
5260 executable_mrbfiles . each do |vm_code |
5361 Rake ::FileTask [ vm_code ] . invoke
54- f . puts "#include \" #{ vm_code } \" " if File . exist? ( vm_code )
62+ f . puts "#include \" #{ vm_code } \" "
5563 end
5664 f . puts
5765 f . puts "static shell_executables executables[] = {"
5866 executable_mrbfiles . each do |vm_code |
5967 basename = File . basename ( vm_code , ".c" )
6068 dirname = pathmap . find { _1 [ :basename ] == basename } [ :dir ]
61- f . puts " {\" #{ dirname } /#{ basename } \" , executable_#{ basename . gsub ( '-' , '_' ) } }," if File . exist? ( vm_code )
69+ line = " {\" #{ dirname } /#{ basename } \" , executable_#{ basename . gsub ( '-' , '_' ) } },"
70+ f . puts line
6271 end
6372 f . puts " {NULL, NULL} /* sentinel */"
6473 f . puts "};"
0 commit comments