Class: Wasify::CMDRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/wasify/cmd_runner.rb

Overview

methods interacting with the command line

Class Method Summary collapse

Class Method Details

.cleanupObject



31
32
33
34
35
36
# File 'lib/wasify/cmd_runner.rb', line 31

def self.cleanup
  system('rm -rf 3_2-wasm32-unknown-wasi-full-js')
  system('rm ruby-3_2-wasm32-unknown-wasi-full-js.tar.gz')
  system('rm ruby.wasm')
  system('rm -rf deps')
end

.copy_gemfileObject



19
20
21
# File 'lib/wasify/cmd_runner.rb', line 19

def self.copy_gemfile
  system('mkdir -p deps && cp -r Gemfile deps/Gemfile && cp -r Gemfile.lock deps/Gemfile.lock')
end

.download_binaryObject



6
7
8
# File 'lib/wasify/cmd_runner.rb', line 6

def self.download_binary
  system('curl -LO https://github.com/ruby/ruby.wasm/releases/latest/download/ruby-3_2-wasm32-unknown-wasi-full-js.tar.gz')
end

.fix_lockfileObject



23
24
25
# File 'lib/wasify/cmd_runner.rb', line 23

def self.fix_lockfile
  system('bundle lock --add-platform wasm32-unknown')
end

.move_binaryObject



15
16
17
# File 'lib/wasify/cmd_runner.rb', line 15

def self.move_binary
  system('mv 3_2-wasm32-unknown-wasi-full-js/usr/local/bin/ruby ruby.wasm')
end

.run_vfsObject



27
28
29
# File 'lib/wasify/cmd_runner.rb', line 27

def self.run_vfs
  system('wasi-vfs pack ruby.wasm --mapdir /src::./src --mapdir /usr::./3_2-wasm32-unknown-wasi-full-js/usr --mapdir /deps::./deps -o packed_ruby.wasm')
end

.unzip_binaryObject



10
11
12
13
# File 'lib/wasify/cmd_runner.rb', line 10

def self.unzip_binary
  system('tar xfz ruby-3_2-wasm32-unknown-wasi-full-js.tar.gz')
  system('chmod -R u+rw 3_2-wasm32-unknown-wasi-full-js')
end