Rakefile in atome-0.5.5.6.6 vs Rakefile in atome-0.5.5.6.7.9

- old
+ new

@@ -1,46 +1,70 @@ # frozen_string_literal: true require 'fileutils' require 'securerandom' require 'digest/sha2' +require 'rubygems' +require 'rubygems/command_manager' +require 'rubygems/uninstaller' require 'bundler/gem_tasks' load 'exe/atome' task :cleanup do - if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ - # Code à exécuter sous Windows - `gem cleanup atome` - `echo yes | gem uninstall atome` - `cd pkg` - elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ - # Code à exécuter sous MacOS - `gem cleanup atome;yes | gem uninstall atome;cd pkg` - else - # Code à exécuter sous Unix/Linux - `gem cleanup atome;yes | gem uninstall atome;cd pkg` + manager = Gem::CommandManager.instance + cleanup_command = manager['cleanup'] + + begin + cleanup_command.invoke('atome') + rescue Gem::SystemExitException => e + puts "Erreur lors du nettoyage : #{e.message}" end + begin + uninstaller = Gem::Uninstaller.new('atome', { executables: true, all: true, force: true }) + uninstaller.uninstall + rescue Gem::InstallError => e + puts "Erreur lors de la désinstallation : #{e.message}" + end + Dir.chdir('pkg') do + # Effectuez vos opérations dans le dossier 'pkg' + end + + # if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ + # # code to exec for Windows + # `gem cleanup atome` + # `echo yes | gem uninstall atome` + # `cd pkg` + # + # elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ + # # code to exec for MacOS + # `gem cleanup atome;yes | gem uninstall atome;cd pkg` + # else + # # code to exec for Unix/Linux + # `gem cleanup atome;yes | gem uninstall atome;cd pkg` + # end + end task :reset_cache do + FileUtils.rm_rf('./tmp') + FileUtils.rm_rf('./pkg') + # if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ + # # code to exec for Windows + # `rmdir /s /q .\\tmp` + # `rmdir /s /q .\\pkg` + # + # elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ + # # code to exec for MacOS + # `rm -r -f ./tmp` + # `rm -r -f ./pkg` + # else + # # code to exec for Unix/Linux + # `rm -r -f ./tmp` + # `rm -r -f ./pkg` + # end - if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ - # Code à exécuter sous Windows - `rmdir /s /q .\\tmp` - `rmdir /s /q .\\pkg` - - elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ - # Code à exécuter sous MacOS - `rm -r -f ./tmp` - `rm -r -f ./pkg` - else - # Code à exécuter sous Unix/Linux - `rm -r -f ./tmp` - `rm -r -f ./pkg` - end - end def resolve_requires(file_path, root_path, processed_files = Set.new, depth = 0) return '' unless File.exist?(file_path) return '' if processed_files.include?(file_path) || depth > 10 # check circular dependencies and depth @@ -68,103 +92,126 @@ def generate_resolved_file(source_file_path) root_path = File.dirname(File.expand_path(source_file_path)) resolve_requires(source_file_path, root_path) end -task :test_wasm do - project_name = :test - source = '.' - destination = './tmp' - script_source = './test/application' - wasi_file = 'wasi-vfs-osx_arm' - host_mode = 'pure_wasm' +def wasm_params(source, destination, project_name, wasi_file, host_mode, script_source) create_application(source, destination, project_name) wasm_common(source, destination, project_name, wasi_file, host_mode, script_source) - if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ - # Code à exécuter sous Windows - `start "" ".\\tmp\\#{project_name}\\src\\index.html"` - elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ - # Code à exécuter sous MacOS - `open ./tmp/#{project_name}/src/index.html` - else - # Code à exécuter sous Unix/Linux - `open ./tmp/#{project_name}/src/index.html` - end - - - puts 'atome wasm is build and running!' end -task :test_wasm_osx_x86 do - # wasi Source here : https://github.com/kateinoigakukun/wasi-vfs/releases +task :test_wasm do project_name = :test source = '.' - destination = './tmp' - script_source = './test/application' - wasi_file = 'wasi-vfs-osx_x86' + host_mode = 'pure_wasm' - create_application(source, destination, project_name) - wasm_common(source, destination, project_name, wasi_file, script_source, host_mode, script_source) - if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ - # Code à exécuter sous Windows - `start "" ".\\tmp\\#{project_name}\\src\\index.html"` - elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ - # Code à exécuter sous MacOS - `open ./tmp/#{project_name}/src/index.html` - else - # Code à exécuter sous Unix/Linux - `open ./tmp/#{project_name}/src/index.html` - end + file_path = "./tmp/#{project_name}/src/index.html" - puts 'atome wasm is build and running!' -end -task :test_wasm_windows do - # wasi Source here : https://github.com/kateinoigakukun/wasi-vfs/releases - project_name = :test - source = '.' - destination = './tmp' - script_source = './test/application' - wasi_file = 'wasi-vfs.exe pack' - host_mode = 'pure_wasm' - create_application(source, destination, project_name) - wasm_common(source, destination, project_name, wasi_file, host_mode, script_source) - if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ - # Code à exécuter sous Windows - `start "" ".\\tmp\\#{project_name}\\src\\index.html"` - elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ - # Code à exécuter sous MacOS - `open ./tmp/#{project_name}/src/index.html` + case RbConfig::CONFIG['host_os'] + when /darwin|mac os/ + + cpu_type = RbConfig::CONFIG['host_cpu'] + wasi_file = if cpu_type.include?('arm') || cpu_type.include?('aarch64') + # Commande pour Mac ARM + 'wasi-vfs-osx_arm' + else + # Commande pour Mac Intel x86 + 'wasi-vfs-osx_x86' + end + destination = './tmp' + script_source = './test/application' + + wasm_params(source, destination, project_name, wasi_file, host_mode, script_source) + system "open", file_path + when /linux|bsd/ + destination = './tmp' + script_source = './test/application' + wasi_file = 'wasi-vfs-unix pack tmp' + wasm_params(source, destination, project_name, wasi_file, host_mode, script_source) + system "xdg-open", file_path + when /mswin|mingw|cygwin/ + destination = '.\\tmp' + script_source = '.\\test\\application' + wasi_file = 'wasi-vfs.exe pack' + wasm_params(source, destination, project_name, wasi_file, host_mode, script_source) + system "start", file_path else - # Code à exécuter sous Unix/Linux - `open ./tmp/#{project_name}/src/index.html` + raise "Système d'exploitation non reconnu" end + puts 'atome wasm is build and running!' end -task :test_wasm_unix do - # wasi Source here : https://github.com/kateinoigakukun/wasi-vfs/releases - project_name = :test - source = '.' - destination = './tmp' - script_source = './test/application' - wasi_file = 'wasi-vfs-unix pack tmp' - host_mode = 'pure_wasm' - create_application(source, destination, project_name) - wasm_common(source, destination, project_name, wasi_file, host_mode, script_source) - if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ - # Code à exécuter sous Windows - `start "" ".\\tmp\\#{project_name}\\src\\index.html"` - elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ - # Code à exécuter sous MacOS - `open ./tmp/#{project_name}/src/index.html` - else - # Code à exécuter sous Unix/Linux - `open ./tmp/#{project_name}/src/index.html` - end - puts 'atome wasm is build and running!' -end +# task :test_wasm_osx_x86 do +# # wasi Source here : https://github.com/kateinoigakukun/wasi-vfs/releases +# project_name = :test +# source = '.' +# destination = './tmp' +# script_source = './test/application' +# wasi_file = 'wasi-vfs-osx_x86' +# host_mode = 'pure_wasm' +# create_application(source, destination, project_name) +# wasm_common(source, destination, project_name, wasi_file, script_source, host_mode, script_source) +# if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ +# # code to exec for Windows +# `start "" ".\\tmp\\#{project_name}\\src\\index.html"` +# elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ +# # code to exec for MacOS +# `open ./tmp/#{project_name}/src/index.html` +# else +# # code to exec for Unix/Linux +# `open ./tmp/#{project_name}/src/index.html` +# end +# +# puts 'atome wasm is build and running!' +# end +# task :test_wasm_windows do +# # wasi Source here : https://github.com/kateinoigakukun/wasi-vfs/releases +# project_name = :test +# source = '.' +# destination = './tmp' +# script_source = './test/application' +# wasi_file = 'wasi-vfs.exe pack' +# host_mode = 'pure_wasm' +# create_application(source, destination, project_name) +# wasm_common(source, destination, project_name, wasi_file, host_mode, script_source) +# if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ +# # code to exec for Windows +# `start "" ".\\tmp\\#{project_name}\\src\\index.html"` +# elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ +# # code to exec for MacOS +# `open ./tmp/#{project_name}/src/index.html` +# else +# # code to exec for Unix/Linux +# `open ./tmp/#{project_name}/src/index.html` +# end +# puts 'atome wasm is build and running!' +# end +# task :test_wasm_unix do +# # wasi Source here : https://github.com/kateinoigakukun/wasi-vfs/releases +# project_name = :test +# source = '.' +# destination = './tmp' +# script_source = './test/application' +# wasi_file = 'wasi-vfs-unix pack tmp' +# host_mode = 'pure_wasm' +# create_application(source, destination, project_name) +# wasm_common(source, destination, project_name, wasi_file, host_mode, script_source) +# if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ +# # code to exec for Windows +# `start "" ".\\tmp\\#{project_name}\\src\\index.html"` +# elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ +# # code to exec for MacOS +# `open ./tmp/#{project_name}/src/index.html` +# else +# # code to exec for Unix/Linux +# `open ./tmp/#{project_name}/src/index.html` +# end +# puts 'atome wasm is build and running!' +# end + task :test_opal do project_name = :test source = '.' destination = './tmp' script_source = './test/application' @@ -183,17 +230,17 @@ build_opal_extensions(source, destination, project_name) # build application build_opal_application(source, destination, project_name) # open the app if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ - # Code à exécuter sous Windows + # code to exec for Windows `start "" "#{destination}\\#{project_name}\\src\\index_opal.html"` elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ - # Code à exécuter sous MacOS + # code to exec for MacOS `open #{destination}/#{project_name}/src/index_opal.html` else - # Code à exécuter sous Unix/Linux + # code to exec for Unix/Linux `open #{destination}/#{project_name}/src/index_opal.html` end puts 'atome opal is build and running!' end @@ -235,17 +282,17 @@ threads = [] threads << Thread.new do sleep 1 if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ - # Code à exécuter sous Windows + # code to exec for Windows `start "" "http://localhost:9292"` elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ - # Code à exécuter sous MacOS + # code to exec for MacOS `open http://localhost:9292` else - # Code à exécuter sous Unix/Linux + # code to exec for Unix/Linux `open http://localhost:9292` end end build_for_server(destination, project_name, 9292, :production) @@ -294,69 +341,86 @@ puts 'atome osx is updated' end task :osx_server do project_name = :test - source = '.' - destination = './tmp' - script_source = './test/application' - create_application(source, destination, project_name) - # the line below is to add addition script to the application folder (useful for test per example) - add_to_application_folder(script_source, destination, project_name) - # build opal - build_opal_library(source, destination, project_name) - # build parser - build_opal_parser(source, destination, project_name) - # build atome kernel - build_atome_kernel_for_opal(source, destination, project_name) - # build host_mode - build_host_mode(destination, project_name, 'puma-roda') - # build Opal extensions - build_opal_extensions(source, destination, project_name) - # build application - build_opal_application(source, destination, project_name) - # build and open the app + source = '.' + destination = './tmp' + script_source = './test/application' + create_application(source, destination, project_name) + # the line below is to add addition script to the application folder (useful for test per example) + add_to_application_folder(script_source, destination, project_name) + # build opal + build_opal_library(source, destination, project_name) + # build parser + build_opal_parser(source, destination, project_name) + # build atome kernel + build_atome_kernel_for_opal(source, destination, project_name) + # build host_mode + build_host_mode(destination, project_name, 'puma-roda') + # build Opal extensions + build_opal_extensions(source, destination, project_name) + # build application + build_opal_application(source, destination, project_name) + # build and open the app - project_name = :test - source = '.' - destination = './tmp' - script_source = './test/application' - wasi_file = 'wasi-vfs-osx_arm' - host_mode = 'tauri' - create_application(source, destination, project_name) - wasm_common(source, destination, project_name, wasi_file, host_mode, script_source) - destination = './tmp' - threads = [] - threads << Thread.new do - build_for_server(destination, project_name, 9292, :production) - end - build_for_osx(destination) + project_name = :test + source = '.' + destination = './tmp' + script_source = './test/application' + wasi_file = 'wasi-vfs-osx_arm' + host_mode = 'tauri' + create_application(source, destination, project_name) + wasm_common(source, destination, project_name, wasi_file, host_mode, script_source) + destination = './tmp' + threads = [] + threads << Thread.new do + build_for_server(destination, project_name, 9292, :production) + end + build_for_osx(destination) + puts 'atome osx is running' - puts 'atome osx is running' - end - task :build_gem do # building the gem `rake build` # run build_app thru ARGV in exe atome # installing the gem if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ - # Code à exécuter sous Windows + # code to exec for Windows `cd pkg && gem install atome --local` elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ - # Code à exécuter sous MacOS + # code to exec for MacOS `cd pkg; gem install atome --local` # open the app else - # Code à exécuter sous Unix/Linux + # code to exec for Unix/Linux `cd pkg; gem install atome --local` # open the app end - puts 'atome gem built and installed' +end + + +task :push_gem do + + # # pushing the gem + # if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ + # # code to exec for Windows + # `cd pkg && gem push atome` + # elsif RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ + # # code to exec for MacOS + # `cd pkg; gem push atome` + # # open the app + # else + # # code to exec for Unix/Linux + # `cd pkg; gem push atome` + # # open the app + # end + # + # puts 'atome gem pushed' end # task :run_wasm_client_code do # app_name = :test # dest_path = './tmp/'