#!/usr/bin/env ruby require 'json' require_relative './../../xrforge.rb' # Check if a filename is provided if ARGV.length != 1 puts "Usage: #{$0} " exit 1 end filename = ARGV[0] begin # dont run for each file-update if ! filename.end_with?("datapackage.json") exit 0 end # Change the directory dir = File.dirname(filename) dirPublic = dir.gsub("/mnt/","").gsub("#","%23") Dir.chdir( File.dirname(filename) ) # Read and parse the JSON file data = JSON.parse( File.read( "datapackage.json" ) ) logfile = File.join( File.dirname(filename), ".xrforge/log.txt" ) XRForge.log("✅ starting generating audiovisual experience", logfile) # Check if a model file was found after the loop #model_file = XRForge.getExperienceFile(data,dir,logfile) #if ! model_file # XRForge.log("❌ No suitable 3D file found for JanusXR-compatible experience", logfile) # exit #end # Get the value of the environment variable FEDERATE_DRIVE_HOST federate_drive_host = ENV['FEDERATE_DRIVE_HOST'] autogenerate = true if ! data['description'] end XRForge.log("✅ generated audiovisual experience", logfile) XRForge.log(" ", logfile) # tag it! if ! data['keywords'].include?('audiovisual') data['keywords'].push('audiovisual') File.write("datapackage.json", JSON.pretty_generate(data) ) end rescue Errno::ENOENT puts "File #{filename} not found" rescue JSON::ParserError puts "Error parsing JSON from #{filename}" rescue => e puts "An error occurred: #{e.message}" end