forked from ungleich-public/cdist
		
	new type __debian_backports
This new type will setup the backports distribution for the current Debian release.
This commit is contained in:
		
					parent
					
						
							
								a58f5ffa7f
							
						
					
				
			
			
				commit
				
					
						a5169ad858
					
				
			
		
					 6 changed files with 153 additions and 0 deletions
				
			
		
							
								
								
									
										90
									
								
								cdist/conf/type/__debian_backports/man.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								cdist/conf/type/__debian_backports/man.rst
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,90 @@ | ||||||
|  | cdist-type__debian_backports(7) | ||||||
|  | =============================== | ||||||
|  | 
 | ||||||
|  | NAME | ||||||
|  | ---- | ||||||
|  | cdist-type__debian_backports - Install backports for Debain systems | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | DESCRIPTION | ||||||
|  | ----------- | ||||||
|  | This singleton type installs backports for the current Debian version. | ||||||
|  | It aborts if backports are not supported for the specified os or no | ||||||
|  | version codename could be fetched (like Debian unstable). | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | REQUIRED PARAMETERS | ||||||
|  | ------------------- | ||||||
|  | None. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | OPTIONAL PARAMETERS | ||||||
|  | ------------------- | ||||||
|  | state | ||||||
|  |     Represents the state of the backports repository. ``present`` or | ||||||
|  |     ``absent``, defaults to ``present``. | ||||||
|  | 
 | ||||||
|  |     Will be directly passed to :strong:`cdist-type__apt_source`\ (7). | ||||||
|  | 
 | ||||||
|  | mirror | ||||||
|  |     The mirror to fetch the backports from. Will defaults to the Debian default | ||||||
|  |     `<http://deb.debian.org/debian/>`_. | ||||||
|  | 
 | ||||||
|  |     Will be directly passed to :strong:`cdist-type__apt_source`\ (7). | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | BOOLEAN PARAMETERS | ||||||
|  | ------------------ | ||||||
|  | None. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | MESSAGES | ||||||
|  | -------- | ||||||
|  | None. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | EXAMPLES | ||||||
|  | -------- | ||||||
|  | 
 | ||||||
|  | .. code-block:: sh | ||||||
|  | 
 | ||||||
|  |    # setup the backports | ||||||
|  |    __debian_backports | ||||||
|  |    __debian_backports --state absent | ||||||
|  |    __debian_backports --state present --mirror "http://ftp.de.debian.org/debian/" | ||||||
|  | 
 | ||||||
|  |    # update | ||||||
|  |    require="__debian_backports" __apt_update_index | ||||||
|  | 
 | ||||||
|  |    # install a backports package | ||||||
|  |    # currently for the buster release backports | ||||||
|  |    require="__apt_update_index" __package_apt wireguard \ | ||||||
|  |         --target-release buster-backports | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ABORTS | ||||||
|  | ------ | ||||||
|  | Aborts if the detected os is not Debian. | ||||||
|  | 
 | ||||||
|  | Aborts if no distribuition codename could be detected. This is common for the | ||||||
|  | unstable distribution, but there is no backports repository for it already. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | SEE ALSO | ||||||
|  | -------- | ||||||
|  | `Official Debian Backports site <https://backports.debian.org/>`_ | ||||||
|  | 
 | ||||||
|  | :strong:`cdist-type__apt_source`\ (7) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | AUTHORS | ||||||
|  | ------- | ||||||
|  | Matthias Stecher <matthiasstecher at gmx.de> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | COPYING | ||||||
|  | ------- | ||||||
|  | Copyright \(C) 2020 Matthias Stecher. You can redistribute it | ||||||
|  | and/or modify it under the terms of the GNU General Public License as | ||||||
|  | published by the Free Software Foundation, either version 3 of the | ||||||
|  | License, or (at your option) any later version. | ||||||
							
								
								
									
										59
									
								
								cdist/conf/type/__debian_backports/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										59
									
								
								cdist/conf/type/__debian_backports/manifest
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,59 @@ | ||||||
|  | #!/bin/sh -e | ||||||
|  | # __debian_backports/manifest | ||||||
|  | # | ||||||
|  | # 2020 Matthias Stecher (matthiasstecher at gmx.de) | ||||||
|  | # | ||||||
|  | # This file is part of cdist. | ||||||
|  | # | ||||||
|  | # cdist is free software: you can redistribute it and/or modify | ||||||
|  | # it under the terms of the GNU General Public License as published by | ||||||
|  | # the Free Software Foundation, either version 3 of the License, or | ||||||
|  | # (at your option) any later version. | ||||||
|  | # | ||||||
|  | # cdist is distributed in the hope that it will be useful, | ||||||
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | # GNU General Public License for more details. | ||||||
|  | # | ||||||
|  | # You should have received a copy of the GNU General Public License | ||||||
|  | # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||||
|  | # | ||||||
|  | # | ||||||
|  | # Enables/disables backports repository. Utilies __apt_source for it. | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # detect backport distribution | ||||||
|  | os="$(cat "$__global/explorer/os")" | ||||||
|  | case "$os" in | ||||||
|  |     debian) | ||||||
|  |         # distribution codename from /etc/os-release | ||||||
|  |         # lsb_release may not be given in all debian installations | ||||||
|  |         dist="$( | ||||||
|  |             . "$__global/explorer/os-release" | ||||||
|  |             printf "%s" "$VERSION_CODENAME" | ||||||
|  |         )" | ||||||
|  |         ;; | ||||||
|  |     *) | ||||||
|  |         printf "Backports for %s are not supported!\n" "$os" >&2 | ||||||
|  |         exit 1 | ||||||
|  |         ;; | ||||||
|  | esac | ||||||
|  | 
 | ||||||
|  | # error if no codename given (e.g. on Debian unstable) | ||||||
|  | if [ -z "$dist" ]; then | ||||||
|  |     printf "No backports for unkown version of distribution %s!\n" "$os" >&2 | ||||||
|  |     exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # parameters | ||||||
|  | state="$(cat "$__object/parameter/state")" | ||||||
|  | mirror="$(cat "$__object/parameter/mirror")" | ||||||
|  | 
 | ||||||
|  | # install the given backports repository | ||||||
|  | __apt_source "${dist}-backports" \ | ||||||
|  |     --state "$state" \ | ||||||
|  |     --distribution "${dist}-backports" \ | ||||||
|  |     --component main \ | ||||||
|  |     --uri "$mirror" | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | http://deb.debian.org/debian/ | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | present | ||||||
							
								
								
									
										2
									
								
								cdist/conf/type/__debian_backports/parameter/optional
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cdist/conf/type/__debian_backports/parameter/optional
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | ||||||
|  | state | ||||||
|  | mirror | ||||||
							
								
								
									
										0
									
								
								cdist/conf/type/__debian_backports/singleton
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								cdist/conf/type/__debian_backports/singleton
									
										
									
									
									
										Normal file
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue