$name) { $summary .= "- [". $name ."](bloatware/". $id .".md)\n"; } file_put_contents(SUMMARY_FILE, $summary); # Create sitemap $SITE_NAME = "https://muntashirakon.github.io/android-debloat-list"; $urls = << {$SITE_NAME} EOF; foreach ($bloatware_list as $id => $name) { $urls .= << $SITE_NAME/bloatware/{$id}.html weekly EOF; } $urls .= << EOF; file_put_contents(SITEMAP_FILE . ".xml", $urls); file_put_contents(SITEMAP_FILE, $urls); exit(0); // Functions // function create_bloatware_item(string $type, array $item): string { $id = $item["id"]; $name = $item['label'] ?? $id; $description = str_replace("\n", "\n\n", trim($item["description"])); $warning = isset($item['warning']) ? << {$item['warning']} EOF : ""; $removal = $item['removal']; $removal_name = removal_to_string($item['removal']); $type_tag = type_to_string($type); $web = ""; if (isset($item["web"])) { $web = "## References { .refs }\n"; foreach ($item["web"] as $num => $link) { $n = $num + 1; $web .= "{$n}. <{$link}>\n"; } } return <<
  • {$type_tag}
  • {$removal_name}
{$warning} {$description} {$web} Open in App Manager EOF; } function type_to_string(string $type): string { switch ($type) { case "aosp": return ' AOSP'; case "carrier": return ' Carrier'; case "google": return ' Google'; case "misc": return "Others"; case "oem": return ' OEM'; case "pending": return "Pending"; default: throw new Exception("Invalid type: $type"); } } function removal_to_string(string $removal_name): string { switch ($removal_name) { case "delete": return "Safe to delete"; case "replace": return "Replace with alternative"; case "caution": return "Exercise caution"; case "unsafe": return "Unsafe"; default: throw new Exception("Invaid removal: $removal_name"); } }