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/'