1eb8dc403SDave Cobbley#
2eb8dc403SDave Cobbley# Extra RecipeInfo will be all defined in this file. Currently,
3eb8dc403SDave Cobbley# Only Hob (Image Creator) Requests some extra fields. So
4eb8dc403SDave Cobbley# HobRecipeInfo is defined. It's named HobRecipeInfo because it
5eb8dc403SDave Cobbley# is introduced by 'hob'. Users could also introduce other
6eb8dc403SDave Cobbley# RecipeInfo or simply use those already defined RecipeInfo.
7eb8dc403SDave Cobbley# In the following patch, this newly defined new extra RecipeInfo
8eb8dc403SDave Cobbley# will be dynamically loaded and used for loading/saving the extra
9eb8dc403SDave Cobbley# cache fields
10eb8dc403SDave Cobbley
11eb8dc403SDave Cobbley# Copyright (C) 2011, Intel Corporation. All rights reserved.
12eb8dc403SDave Cobbley
13*c342db35SBrad Bishop# SPDX-License-Identifier: GPL-2.0-only
14eb8dc403SDave Cobbley#
15eb8dc403SDave Cobbley
16eb8dc403SDave Cobbleyfrom bb.cache import RecipeInfoCommon
17eb8dc403SDave Cobbley
18eb8dc403SDave Cobbleyclass HobRecipeInfo(RecipeInfoCommon):
19eb8dc403SDave Cobbley    __slots__ = ()
20eb8dc403SDave Cobbley
21eb8dc403SDave Cobbley    classname = "HobRecipeInfo"
22eb8dc403SDave Cobbley    # please override this member with the correct data cache file
23eb8dc403SDave Cobbley    # such as (bb_cache.dat, bb_extracache_hob.dat)
24eb8dc403SDave Cobbley    cachefile = "bb_extracache_" + classname +".dat"
25eb8dc403SDave Cobbley
26eb8dc403SDave Cobbley    # override this member with the list of extra cache fields
27eb8dc403SDave Cobbley    # that this class will provide
28eb8dc403SDave Cobbley    cachefields = ['summary', 'license', 'section',
29eb8dc403SDave Cobbley            'description', 'homepage', 'bugtracker',
30eb8dc403SDave Cobbley            'prevision', 'files_info']
31eb8dc403SDave Cobbley
32eb8dc403SDave Cobbley    def __init__(self, filename, metadata):
33eb8dc403SDave Cobbley
34eb8dc403SDave Cobbley        self.summary = self.getvar('SUMMARY', metadata)
35eb8dc403SDave Cobbley        self.license = self.getvar('LICENSE', metadata)
36eb8dc403SDave Cobbley        self.section = self.getvar('SECTION', metadata)
37eb8dc403SDave Cobbley        self.description = self.getvar('DESCRIPTION', metadata)
38eb8dc403SDave Cobbley        self.homepage = self.getvar('HOMEPAGE', metadata)
39eb8dc403SDave Cobbley        self.bugtracker = self.getvar('BUGTRACKER', metadata)
40eb8dc403SDave Cobbley        self.prevision = self.getvar('PR', metadata)
41eb8dc403SDave Cobbley        self.files_info = self.getvar('FILES_INFO', metadata)
42eb8dc403SDave Cobbley
43eb8dc403SDave Cobbley    @classmethod
44eb8dc403SDave Cobbley    def init_cacheData(cls, cachedata):
45eb8dc403SDave Cobbley        # CacheData in Hob RecipeInfo Class
46eb8dc403SDave Cobbley        cachedata.summary = {}
47eb8dc403SDave Cobbley        cachedata.license = {}
48eb8dc403SDave Cobbley        cachedata.section = {}
49eb8dc403SDave Cobbley        cachedata.description = {}
50eb8dc403SDave Cobbley        cachedata.homepage = {}
51eb8dc403SDave Cobbley        cachedata.bugtracker = {}
52eb8dc403SDave Cobbley        cachedata.prevision = {}
53eb8dc403SDave Cobbley        cachedata.files_info = {}
54eb8dc403SDave Cobbley
55eb8dc403SDave Cobbley    def add_cacheData(self, cachedata, fn):
56eb8dc403SDave Cobbley        cachedata.summary[fn] = self.summary
57eb8dc403SDave Cobbley        cachedata.license[fn] = self.license
58eb8dc403SDave Cobbley        cachedata.section[fn] = self.section
59eb8dc403SDave Cobbley        cachedata.description[fn] = self.description
60eb8dc403SDave Cobbley        cachedata.homepage[fn] = self.homepage
61eb8dc403SDave Cobbley        cachedata.bugtracker[fn] = self.bugtracker
62eb8dc403SDave Cobbley        cachedata.prevision[fn] = self.prevision
63eb8dc403SDave Cobbley        cachedata.files_info[fn] = self.files_info
64