mirror of
				https://github.com/walkxcode/dashboard-icons.git
				synced 2025-10-27 05:29:03 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import json
 | |
| import os
 | |
| import sys
 | |
| from icons import IssueFormType, checkAction, iconFactory, checkType
 | |
| from pathlib import Path
 | |
| 
 | |
| from metadata import load_metadata
 | |
| 
 | |
| 
 | |
| 
 | |
| ISSUE_FORM_ENV_VAR = "INPUT_ISSUE_FORM"
 | |
| AUTHOR_ID_ENV_VAR = "INPUT_ISSUE_AUTHOR_ID"
 | |
| AUTHOR_LOGIN_ENV_VAR = "INPUT_ISSUE_AUTHOR_LOGIN"
 | |
| 
 | |
| ROOT_DIR = Path(__file__).resolve().parent.parent
 | |
| META_DIR = ROOT_DIR / "meta"
 | |
| 
 | |
| # Ensure the output folders exist
 | |
| META_DIR.mkdir(parents=True, exist_ok=True)
 | |
| 
 | |
| def main(type: str, action: IssueFormType, issue_form: str, author_id: int, author_login: str):
 | |
|     icon = iconFactory(type, issue_form, action)
 | |
|     if (action == IssueFormType.METADATA_UPDATE):
 | |
|         existing_metadata = load_metadata(icon.name)
 | |
|         author_id = existing_metadata["author"]["id"]
 | |
|         author_login = existing_metadata["author"]["login"]
 | |
|     metadata = icon.to_metadata({"id": author_id, "login": author_login})
 | |
| 
 | |
|     FILE_PATH = META_DIR / f"{icon.name}.json"
 | |
| 
 | |
|     with open(FILE_PATH, 'w', encoding='UTF-8') as f:
 | |
|         json.dump(metadata, f, indent=2)
 | |
| 
 | |
| 
 | |
| def parse_author_id():
 | |
|     author_id_string = os.getenv(AUTHOR_ID_ENV_VAR)
 | |
|     if author_id_string != None:
 | |
|         return int(author_id_string)
 | |
|     return None
 | |
| 
 | |
| if (__name__ == "__main__"):
 | |
|     type = checkType(sys.argv[1])
 | |
|     action = checkAction(sys.argv[2])
 | |
|     main(
 | |
|         type,
 | |
|         action,
 | |
|         os.getenv(ISSUE_FORM_ENV_VAR),
 | |
|         parse_author_id(),
 | |
|         os.getenv(AUTHOR_LOGIN_ENV_VAR)
 | |
|     )
 | |
| 
 | 
