-
	var php = `<?php 
		function recursor($dir, $type) {
			$result = array();

			// create the pattern to get the type
			$x = "/_*.";
			for ($i = 0; $i < strlen($type); $i++){
				$x .= "[" . strtolower($type[$i]) . strtoupper($type[$i]) ."]";
			}

			// get the directories
			foreach(glob($dir . "/*") as $d) {
				if ( is_dir( $d ) ) {

					// find the files in each directory
					foreach (glob($d . $x) as $f) {
						$result[] = $f;
					}
					// $more = recursor($d, $type);
					// $result = array_merge($result, $more);
					$result = array_merge($result, recursor($d, $type));
				}
			}
			return $result;
		}

		$allowed_types = ["scss", "js"];
		$patterns = dirname(dirname(__file__)) . "/src/pg/patterns";


		if (!isset($_SERVER['QUERY_STRING']) || !in_array($_SERVER['QUERY_STRING'], $allowed_types)) {
			echo "File extension type is not defined. Ensure that you have added ?[file extension] to the URL. If you have defined a file extension and it is not allowed, you'll need to contact the an administrator to get the requested files.";
			die();
		}

		$type = $_SERVER['QUERY_STRING'];

		$file_list = recursor($patterns, $type);

		$f = tmpfile();
		$t = stream_get_meta_data($f)['uri'];
		$z = new ZipArchive();

		$zf = $z->open($t, ZipArchive::CREATE);
		foreach($file_list as $f) {
			$z->addFile($f, preg_replace('/^.*?patterns\\//', '', $f));
		}
		$z->close();

		header('Content-type: application/zip');
		header(sprintf('Content-Disposition: attachment; filename="%s.zip"', $type));
		echo(file_get_contents($t)); ?>`
| !{php}
