Package platformids :: Package custom :: Module blackarch

Source Code for Module platformids.custom.blackarch

  1  # -*- coding: utf-8 -*- 
  2  """BlackArch Linux releases. 
  3   
  4  Here *BlackArch* Linux, which has the same encoding as *ArchLinux*. 
  5   
  6  """ 
  7  from __future__ import absolute_import 
  8   
  9  from platformids import RTE, rte2num, num2rte, num2pretty, custom_rte_distrel2tuple, custom_dist, \ 
 10      PlatformIDsUnknownError, \ 
 11      RTE_LINUX, RTE_DISTEXT, RTE_OSTYPE, RTE_DIST 
 12   
 13   
 14  __author__ = 'Arno-Can Uestuensoez' 
 15  __license__ = "Artistic-License-2.0 + Forced-Fairplay-Constraints" 
 16  __copyright__ = "Copyright (C) 2010-2018 Arno-Can Uestuensoez" \ 
 17                  " @Ingenieurbuero Arno-Can Uestuensoez" 
 18  __version__ = '0.1.1' 
 19  __uuid__ = "7add5ded-c39b-4b6e-8c87-1b3a1c150ee9" 
 20   
 21   
 22  RTE_BLACKARCH        = RTE_LINUX      + custom_dist.add_enum()   #: BlackArch Linux 
 23  RTE_BLACKARCH20180   = RTE_BLACKARCH  + 0x00006000                            #: BlackArch-2018.0 - offset 1970.1.1 
 24   
 25       
 26  #: mapping of the rte string and numeric representation to the numeric value 
 27  rte2num.update( 
 28      { 
 29          'blackarch':               RTE_BLACKARCH, 
 30          'blackarch20180':          RTE_BLACKARCH20180, 
 31          RTE_BLACKARCH:             RTE_BLACKARCH, 
 32          RTE_BLACKARCH20180:        RTE_BLACKARCH20180, 
 33      } 
 34  ) 
 35   
 36   
 37  #: mapping of the rte numeric representation to the string value 
 38  num2rte.update( 
 39      { 
 40          RTE_BLACKARCH:             'blackarch', 
 41          RTE_BLACKARCH20180:        'blackarch20180', 
 42      } 
 43  ) 
 44   
 45  #: mapping of the rte numeric representation to the string value 
 46  num2pretty.update( 
 47      { 
 48          RTE_BLACKARCH:             'BlackArch', 
 49          RTE_BLACKARCH20180:        'BlackArch-2018.0', 
 50      } 
 51  ) 
 52   
53 -def my_distrel2tuple(rte=RTE):
54 """Callback for special version layout of BlackArch Linux, the 55 same as ArchLinux by Rolling-Versioning, see manuals. 56 57 A callback to be used by the function: 58 59 platformids.decode_rte_distrel_to_segments(rte=RTE) 60 61 Decodes the compressed *distrel* from the 32bit integer 62 bitmask *rte* into the corresponding tuple of integer 63 segments. 64 65 Args: 66 rte: 67 The comppressed runtime environment identifier bitmask. 68 69 default := RTE 70 71 Returns: 72 Tuple of Integer values of the encoded segments, either 73 as defined by the default layout, or any known as defined 74 by additional extended and/or custom criteria. 75 76 Raises: 77 pass-through 78 79 Examples: 80 :: 81 82 decode_rte_distrel_to_segments() 83 => (2019, 4, 1) # on BlackArch-2019.4.1 84 85 """ 86 if rte & RTE_DIST != RTE_BLACKARCH: 87 raise PlatformIDsUnknownError("Not BlackArch: rte = " + str(rte)) 88 89 try: 90 # handle string input 91 _rte = rte2num[rte] 92 except KeyError: 93 # non-registered release 94 95 if type(rte) is int: 96 # can split basically any number, let's see... 97 _rte = rte 98 99 else: 100 raise PlatformIDsUnknownError("Unknown BlackArch release rte = " + str(rte)) 101 102 # represents the ArchLinux layout for rolling distro 103 return ( 104 (_rte & 0xfe00) >> 9 + 1970, 105 (_rte & 0x01e0) >> 5, 106 _rte & 0x001f, 107 )
108 109 110 #: registered callbacks for special handling of custom layout 111 custom_rte_distrel2tuple.update( 112 { 113 # e.g. RTE_PENTOO: PENTOO.platformids.my_distrel2tuple, 114 115 RTE_BLACKARCH: my_distrel2tuple, #: the callback to be registered 116 } 117 ) 118