11import os
22import yaml
3- import json
43from datetime import datetime
54
65def set_default (d , key , default_value ):
7- if not isinstance (d , dict ):
8- return
9- d .setdefault (key , default_value )
6+ if key not in d :
7+ d [key ] = default_value
108
119# Read existing publiccode.yaml
1210try :
@@ -32,38 +30,44 @@ def set_default(d, key, default_value):
3230set_default (data , 'developmentStatus' , "development" )
3331set_default (data , 'softwareType' , "standalone/web" )
3432set_default (data , 'description' , {'en' : {}})
33+ set_default (data ['description' ]['en' ], 'localisedName' , "" )
34+ set_default (data ['description' ]['en' ], 'genericName' , "" )
35+ set_default (data ['description' ]['en' ], 'shortDescription' , "" )
36+ set_default (data ['description' ]['en' ], 'longDescription' , "" )
37+ set_default (data ['description' ]['en' ], 'documentation' , "" )
38+ set_default (data ['description' ]['en' ], 'apiDocumentation' , "" )
39+ set_default (data ['description' ]['en' ], 'features' , [])
40+ set_default (data ['description' ]['en' ], 'screenshots' , [])
41+ set_default (data ['description' ]['en' ], 'videos' , [])
42+ set_default (data ['description' ]['en' ], 'awards' , [])
43+ set_default (data , 'nl' , {'vng' : {}})
44+ set_default (data ['nl' ]['vng' ], 'gemma' , [])
45+ set_default (data ['nl' ]['vng' ], 'commonground' , [])
3546set_default (data , 'legal' , {})
47+ set_default (data ['legal' ], 'license' , "" )
48+ set_default (data ['legal' ], 'mainCopyrightOwner' , "" )
49+ set_default (data ['legal' ], 'repoOwner' , "" )
50+ set_default (data ['legal' ], 'authorsFile' , "" )
3651set_default (data , 'maintenance' , {})
52+ set_default (data ['maintenance' ], 'type' , "none" )
53+ set_default (data ['maintenance' ], 'contractors' , [])
54+ set_default (data ['maintenance' ], 'contacts' , [])
3755set_default (data , 'localisation' , {})
38- set_default (data , 'nl' , {'vng' : {}})
56+ set_default (data ['localisation' ], 'localisationReady' , False )
57+ set_default (data ['localisation' ], 'availableLanguages' , ["en" ])
58+ set_default (data , 'organisation' , {})
3959
4060# Update or append values
4161if os .environ .get ('REPO_NAME' ):
4262 data ['name' ] = os .environ ['REPO_NAME' ]
4363if os .environ .get ('REPO_URL' ):
4464 data ['url' ] = os .environ ['REPO_URL' ]
45-
46- # Check if 'description' is a string and convert it to a dictionary if needed
47- if not isinstance (data ['description' ], dict ):
48- data ['description' ] = {'en' : {}}
49-
5065if os .environ .get ('REPO_DESC' ):
5166 data ['description' ]['en' ]['genericName' ] = os .environ ['REPO_DESC' ]
52-
5367if os .environ .get ('REPO_HOMEPAGE' ):
5468 data ['url' ] = os .environ ['REPO_HOMEPAGE' ]
55-
56- # Uncomment this if you plan to use REPO_TOPICS
57- # if os.environ.get('REPO_TOPICS'):
58- # data['topics'] = os.environ['REPO_TOPICS'].split(',')
59-
6069if os .environ .get ('REPO_LICENSE' ):
6170 data ['legal' ]['license' ] = os .environ ['REPO_LICENSE' ]
62-
63- # Create or update nested 'organisation' array
64- if 'organisation' not in data :
65- data ['organisation' ] = {}
66-
6771if os .environ .get ('ORGANISATION_NAME' ):
6872 data ['organisation' ]['name' ] = os .environ ['ORGANISATION_NAME' ]
6973if os .environ .get ('ORGANISATION_AVATAR' ):
0 commit comments