guru_sdk/guru_app/tools/bin/version_snapshot

42 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
# Python script to parse flutter pubspec.lock file and extract library names and versions
import yaml
import csv
import sys
def parse_pubspec(file_path, sdk):
with open(file_path, 'r') as stream:
try:
data = yaml.safe_load(stream)
packages = data.get('packages', {})
with open('packages.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['name', 'version', 'sdk'])
for package_name, package_data in packages.items():
version = package_data.get('version', None)
description = package_data.get('description', {})
if isinstance(description, str):
continue
else:
url = description.get('url', None)
if "castbox" in url:
continue
print(package_name, version, url)
writer.writerow([package_name, version, sdk])
except yaml.YAMLError as exc:
print(exc)
if len(sys.argv) < 2:
print("Please provide sdk parameter")
sys.exit(1)
sdk = sys.argv[1]
# 调用函数并传入pubspec.lock的文件路径
parse_pubspec('pubspec.lock', sdk)