func NeedsRailsAssetPrecompile()

in pkg/ruby/ruby.go [130:172]


func NeedsRailsAssetPrecompile(ctx *gcp.Context) (bool, error) {
	isRailsApp, err := ctx.FileExists("bin", "rails")
	if err != nil {
		return false, fmt.Errorf("finding bin/rails: %w", err)
	}
	if !isRailsApp {
		return false, nil
	}

	assetsExists, err := ctx.FileExists("app", "assets")
	if err != nil {
		return false, err
	}
	if !assetsExists {
		return false, nil
	}

	manifestExists, err := ctx.FileExists("public", "assets", "manifest.yml")
	if err != nil {
		return false, err
	}
	if manifestExists {
		return false, nil
	}

	matches, err := ctx.Glob("public/assets/manifest-*.json")
	if err != nil {
		return false, fmt.Errorf("finding manifets: %w", err)
	}
	if matches != nil {
		return false, nil
	}

	matches, err = ctx.Glob("public/assets/.sprockets-manifest-*.json")
	if err != nil {
		return false, fmt.Errorf("finding sprockets-manifets: %w", err)
	}
	if matches != nil {
		return false, nil
	}

	return true, nil
}