Sha256: 5e2c1d5f3206846589878cf36b6ef4886f7d63c15dfd5724a45f7aed97762a04
Contents?: true
Size: 1.07 KB
Versions: 3
Compression:
Stored size: 1.07 KB
Contents
require "json" module ShopifyCLI class AppTypeDetector Error = Class.new(StandardError) TypeNotFoundError = Class.new(Error) def self.detect(project_directory:) return :node if node?(project_directory: project_directory) return :rails if rails?(project_directory: project_directory) return :php if php?(project_directory: project_directory) raise TypeNotFoundError, "Couldn't detect the project type in directory: #{project_directory}" end def self.node?(project_directory:) package_json_path = File.join(project_directory, "package.json") return false unless File.exist?(package_json_path) package_json = JSON.parse(File.read(package_json_path)) !package_json.dig("scripts", "dev").nil? end def self.rails?(project_directory:) rails_binstub_path = File.join(project_directory, "bin/rails") File.exist?(rails_binstub_path) end def self.php?(project_directory:) bootstrap_app_path = File.join(project_directory, "bootstrap/app.php") File.exist?(bootstrap_app_path) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
shopify-cli-2.6.6 | lib/shopify_cli/app_type_detector.rb |
shopify-cli-2.6.5 | lib/shopify_cli/app_type_detector.rb |
shopify-cli-2.6.4 | lib/shopify_cli/app_type_detector.rb |