<?php

declare(strict_types=1);

header('Content-Type: application/xml; charset=UTF-8');

$baseUrl = 'https://anutechsoft.com';
$root = __DIR__;

$urls = [];


/*
|--------------------------------------------------------------------------
| FIXED PUBLIC PAGES
|--------------------------------------------------------------------------
*/

$fixedPages = [

    '/',

    '/about',

    '/services',

    '/solutions',

    '/industries',

    '/locations',

    '/portfolio',

    '/contact',

    '/free-audit',

    '/blog',

    '/careers',

];

foreach ($fixedPages as $url) {

    $urls[$url] = true;

}


/*
|--------------------------------------------------------------------------
| SERVICES
|--------------------------------------------------------------------------
*/

$directories = [

    'services',
    'solutions',
    'industries',
    'locations',

];


foreach ($directories as $directory) {

    $directoryPath = $root . '/' . $directory;

    if (!is_dir($directoryPath)) {
        continue;
    }

    $files = glob($directoryPath . '/*.php');

    if (!$files) {
        continue;
    }

    foreach ($files as $file) {

        $filename = basename($file);

        // Don't include index.php
        if ($filename === 'index.php') {
            continue;
        }

        $slug = pathinfo(
            $filename,
            PATHINFO_FILENAME
        );

        if ($slug === '') {
            continue;
        }

        $urls[
            '/' . $directory . '/' . $slug
        ] = true;

    }

}


/*
|--------------------------------------------------------------------------
| BLOG POSTS
|--------------------------------------------------------------------------
|
| blog/posts/example-post.php
|
| becomes:
|
| /blog/example-post
|
|--------------------------------------------------------------------------
*/

$blogPostsDirectory = $root . '/blog/posts';

if (is_dir($blogPostsDirectory)) {

    $postFiles = glob(
        $blogPostsDirectory . '/*.php'
    );

    if ($postFiles) {

        foreach ($postFiles as $file) {

            $filename = basename($file);

            if ($filename === 'index.php') {
                continue;
            }

            $slug = pathinfo(
                $filename,
                PATHINFO_FILENAME
            );

            if ($slug === '') {
                continue;
            }

            $urls[
                '/blog/' . $slug
            ] = true;

        }

    }

}


/*
|--------------------------------------------------------------------------
| REMOVE DUPLICATES
|--------------------------------------------------------------------------
*/

$urls = array_keys($urls);

$urls = array_unique($urls);


/*
|--------------------------------------------------------------------------
| SORT URLS
|--------------------------------------------------------------------------
*/

sort($urls);


/*
|--------------------------------------------------------------------------
| XML OUTPUT
|--------------------------------------------------------------------------
*/

echo '<?xml version="1.0" encoding="UTF-8"?>';

echo "\n";

echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

echo "\n";


foreach ($urls as $url) {

    $cleanUrl = rtrim(
        $baseUrl . $url,
        '/'
    );

    // Keep homepage slash
    if ($url === '/') {
        $cleanUrl = $baseUrl . '/';
    }

    echo "    <url>\n";

    echo "        <loc>"
        . htmlspecialchars(
            $cleanUrl,
            ENT_XML1,
            'UTF-8'
        )
        . "</loc>\n";

    echo "    </url>\n";

}


echo '</urlset>';

echo "\n";