File create-yarn-mirror.rb of Package element

#!/usr/bin/env ruby

require "fileutils"

class Generate

    def initialize
        @npm_packages_cache_path = "./npm-packages-offline-cache"
    end

    def perform
        FileUtils.rm_rf "#{__dir__}/temp_repo"


        `git clone https://github.com/vector-im/element-web.git temp_repo`
        Dir.chdir "temp_repo" do
            `git checkout master`

            yarnconfig = "#{Dir.pwd}/.yarnrc"

            File.open yarnconfig, "w" do |f|
                f.write generate_yarnrc
            end

            #FileUtils.rm "yarn.lock"

            #`yarn install --production=true`
            `yarn install`

            `tar cf npm-packages-offline-cache.tar npm-packages-offline-cache/`
            FileUtils.mv "npm-packages-offline-cache.tar", ".."
            FileUtils.cp ".yarnrc", "../yarnrc"
        end
    end

    private

    def generate_yarnrc
        <<~EOF
        # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
        # yarn lockfile v1


        lastUpdateCheck 1606548196912
        yarn-offline-mirror #{@npm_packages_cache_path}
        yarn-offline-mirror-pruning true
        EOF
    end
end

generate = Generate.new
generate.perform