<?php
/**
 * Global constants.
 */

if ( ! defined( 'FONTAWESOME_DIR_PATH' ) ) {
	/**
	 * Active Font Awesome plugin installation directory path.
	 *
	 * The result of `plugin_dir_path()` on the `defines.php` file for the actively
	 * executing installation of the Font Awesome plugin.
	 *
	 * For example, if the example plugin under `integrations/plugins/plugin-sigma`
	 * in this repo were installed, activated, and its copy of the Font Awesome
	 * plugin were the one selected for execution, then the value of this
	 * constant would be something like this:
	 * `/var/www/html/wp-content/plugins/plugin-sigma/vendor/fortawesome/wordpress-fontawesome/`
	 *
	 * However, suppose that a second copy of the Font Awesome plugin were installed
	 * from the WordPress plugins directory, and that copy had a later semantic
	 * version than the one bundled by plugin-sigma. In that case, the value
	 * of this constant would look more like this:
	 * `/var/www/html/wp-content/plugins/font-awesome/`
	 *
	 * @since 4.0.0
	 */
	define( 'FONTAWESOME_DIR_PATH', plugin_dir_path( __FILE__ ) );
}

if ( ! defined( 'FONTAWESOME_DIR_URL' ) ) {
	/**
	 * Active Font Awesome plugin installation directory URL.
	 *
	 * The url that corresponds to the top level of the executing installation
	 * of the Font Awesome plugin (where the `defines.php` file lives).
	 *
	 * For example, if the example plugin under `integrations/plugins/plugin-sigma`
	 * in this repo were installed, activated, and its copy of the Font Awesome
	 * plugin were the one selected for execution, then the value of this
	 * constant would be something like this:
	 * `http://localhost:8765/wp-content/plugins/plugin-sigma/vendor/fortawesome/wordpress-fontawesome/`
	 *
	 * However, suppose that a second copy of the Font Awesome plugin were installed
	 * from the WordPress plugins directory, and that copy had a later semantic
	 * version than the one bundled by plugin-sigma. In that case, the value
	 * of this constant would look more like this:
	 * `http://localhost:8765/wp-content/plugins/font-awesome/`
	 *
	 * This also accounts for the possibility that current Font Awesome is installed
	 * as a composer package required by the current theme. For example, if the
	 * example theme under `integrations/themes/plugin-mu` in this repo were installed,
	 * activated, and its copy of the Font Awesome plugin were the one selected for execution,
	 * then the value of this constant would be something like this:
	 * `http://localhost:8765/wp-content/themes/theme-mu/vendor/fortawesome/wordpress-fontawesome/`
	 *
	 * @since 4.0.0
	*/
	$ss_dir = get_stylesheet_directory();
	/**
	 * If the current file path begins with the stylesheet directory, then we
	 * know that Font Awesome is being loaded as a dependency of a theme.
	 */
	if ( substr( __FILE__, 0, strlen( $ss_dir ) ) === $ss_dir ) {
		$fa_sub_path = substr( __DIR__, strlen( $ss_dir ) );
		define( 'FONTAWESOME_DIR_URL', untrailingslashit( get_stylesheet_directory_uri() ) . '/' . trailingslashit( $fa_sub_path ) );
	} else {
		define( 'FONTAWESOME_DIR_URL', plugin_dir_url( __FILE__ ) );
	}
}

if ( ! defined( 'FONTAWESOME_ENV' ) ) {
	/**
	 * @internal
	 * @ignore
	 */
	define( 'FONTAWESOME_ENV', getenv( 'FONTAWESOME_ENV' ) );
}

if ( ! defined( 'FONTAWESOME_API_URL' ) ) {
	if ( 'test' === FONTAWESOME_ENV ) {
		/**
		 * @internal
		 * @ignore
		 */
		define( 'FONTAWESOME_API_URL', 'no_network_in_test_env' );
	} elseif ( 'development' === getenv( 'FONTAWESOME_ENV' ) && boolval( getenv( 'FONTAWESOME_API_URL' ) ) ) {
		/**
		 * @internal
		 * @ignore
		 */
		define( 'FONTAWESOME_API_URL', untrailingslashit( getenv( 'FONTAWESOME_API_URL' ) ) );
	} else {
		/**
		 * @internal
		 * @ignore
		 */
		define( 'FONTAWESOME_API_URL', 'https://api.fontawesome.com' );
	}
}

if ( ! defined( 'FONTAWESOME_KIT_LOADER_BASE_URL' ) ) {
	if ( 'development' === getenv( 'FONTAWESOME_ENV' ) && boolval( getenv( 'FONTAWESOME_KIT_LOADER_BASE_URL' ) ) ) {
		/**
		 * @internal
		 * @ignore
		 */
		define( 'FONTAWESOME_KIT_LOADER_BASE_URL', untrailingslashit( getenv( 'FONTAWESOME_KIT_LOADER_BASE_URL' ) ) );
	} else {
		/**
		 * @internal
		 * @ignore
		 */
		define( 'FONTAWESOME_KIT_LOADER_BASE_URL', 'https://kit.fontawesome.com' );
	}
}

if ( ! defined( 'FONTAWESOME_ASSETS_BASE_URL_OVERRIDE' ) ) {
	if ( 'development' === getenv( 'FONTAWESOME_ENV' ) && boolval( getenv( 'FONTAWESOME_ASSETS_BASE_URL_OVERRIDE' ) ) ) {
		/**
		 * @internal
		 * @ignore
		 */
		define( 'FONTAWESOME_ASSETS_BASE_URL_OVERRIDE', untrailingslashit( getenv( 'FONTAWESOME_ASSETS_BASE_URL_OVERRIDE' ) ) );
	} else {
		/**
		 * @internal
		 * @ignore
		 */
		define( 'FONTAWESOME_ASSETS_BASE_URL_OVERRIDE', null );
	}
}
