Skip to content

Instantly share code, notes, and snippets.

@j9t
Created November 29, 2024 18:29
Show Gist options
  • Save j9t/6ecd1069a70462f7cd8853dcdbba4789 to your computer and use it in GitHub Desktop.
Save j9t/6ecd1069a70462f7cd8853dcdbba4789 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
import json
import sys
from pathlib import Path
def sort_dict_recursively(d):
if isinstance(d, dict):
return {k: sort_dict_recursively(v) for k, v in sorted(d.items())}
elif isinstance(d, list):
return sorted(sort_dict_recursively(x) if isinstance(x, (dict, list)) else x for x in d)
return d
def sort_package_json(file_path):
with open(file_path, 'r') as f:
package_data = json.load(f)
sorted_data = sort_dict_recursively(package_data)
with open(file_path, 'w') as f:
json.dump(sorted_data, f, indent=2)
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: ./sort_package_json.py path/to/package.json")
sys.exit(1)
package_json_path = sys.argv[1]
if not Path(package_json_path).exists():
print(f"Error: File {package_json_path} not found")
sys.exit(1)
sort_package_json(package_json_path)
print(f"Successfully sorted {package_json_path}")
@j9t
Copy link
Author

j9t commented Nov 29, 2024

Python script to sort package.json contents alphabetically.

Usage:

  1. Save file
  2. Make it executable, as in chmod +x sort-package.json.py
  3. Run as in ./sort-package.json.py path/to/package.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment