forked from ungleich-public/cdist
		
	Merge with master.
This commit is contained in:
		
				commit
				
					
						cf451f0bea
					
				
			
		
					 41 changed files with 287 additions and 27 deletions
				
			
		| 
						 | 
					@ -49,6 +49,11 @@ if [ -f /etc/debian_version ]; then
 | 
				
			||||||
   echo debian
 | 
					   echo debian
 | 
				
			||||||
   exit 0
 | 
					   exit 0
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -f /etc/devuan_version ]; then
 | 
				
			||||||
 | 
					   echo devuan
 | 
				
			||||||
 | 
					   exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
###
 | 
					###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ -f /etc/gentoo-release ]; then
 | 
					if [ -f /etc/gentoo-release ]; then
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,9 @@ case "$($__explorer/os)" in
 | 
				
			||||||
   debian)
 | 
					   debian)
 | 
				
			||||||
      cat /etc/debian_version
 | 
					      cat /etc/debian_version
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
 | 
					   devuan)
 | 
				
			||||||
 | 
					      cat /etc/devuan_version
 | 
				
			||||||
 | 
					   ;;
 | 
				
			||||||
   fedora)
 | 
					   fedora)
 | 
				
			||||||
      cat /etc/fedora-release
 | 
					      cat /etc/fedora-release
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@
 | 
				
			||||||
os=$(cat "$__global/explorer/os")
 | 
					os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
   ubuntu|debian)
 | 
					   ubuntu|debian|devuan)
 | 
				
			||||||
      # No stinking recommends thank you very much.
 | 
					      # No stinking recommends thank you very much.
 | 
				
			||||||
      # If I want something installed I will do so myself.
 | 
					      # If I want something installed I will do so myself.
 | 
				
			||||||
      __file /etc/apt/apt.conf.d/99-no-recommends \
 | 
					      __file /etc/apt/apt.conf.d/99-no-recommends \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,7 +35,7 @@ has_hostnamectl=$(cat "$__object/explorer/has_hostnamectl")
 | 
				
			||||||
# If everything is ok -> exit
 | 
					# If everything is ok -> exit
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
    archlinux|debian|suse|ubuntu)
 | 
					    archlinux|debian|suse|ubuntu|devuan)
 | 
				
			||||||
        if [ "$name_config" = "$name_should" -a "$name_running" = "$name_should" ]; then
 | 
					        if [ "$name_config" = "$name_should" -a "$name_running" = "$name_should" ]; then
 | 
				
			||||||
            exit 0
 | 
					            exit 0
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
| 
						 | 
					@ -60,7 +60,7 @@ if [ "$has_hostnamectl" ]; then
 | 
				
			||||||
    echo "hostnamectl set-hostname '$name_should'"
 | 
					    echo "hostnamectl set-hostname '$name_should'"
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    case "$os" in
 | 
					    case "$os" in
 | 
				
			||||||
        archlinux|debian|ubuntu)
 | 
					        archlinux|debian|ubuntu|devuan)
 | 
				
			||||||
            echo "hostname '$name_should'"
 | 
					            echo "hostname '$name_should'"
 | 
				
			||||||
            echo "printf '%s\n' '$name_should' > /etc/hostname"
 | 
					            echo "printf '%s\n' '$name_should' > /etc/hostname"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,7 +34,7 @@ not_supported() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
    archlinux|debian|suse|ubuntu)
 | 
					    archlinux|debian|suse|ubuntu|devuan)
 | 
				
			||||||
        # handled in gencode-remote
 | 
					        # handled in gencode-remote
 | 
				
			||||||
        :
 | 
					        :
 | 
				
			||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@ os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
    debian)
 | 
					    debian|devuan)
 | 
				
			||||||
        # Debian needs a seperate package
 | 
					        # Debian needs a seperate package
 | 
				
			||||||
        __package locales --state present
 | 
					        __package locales --state present
 | 
				
			||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@
 | 
				
			||||||
os=$(cat "$__global/explorer/os")
 | 
					os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
    debian|ubuntu)
 | 
					    debian|ubuntu|devuan)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Debian and Ubuntu need to be updated,
 | 
					        # Debian and Ubuntu need to be updated,
 | 
				
			||||||
        # as seen in /etc/init.d/bootlogs
 | 
					        # as seen in /etc/init.d/bootlogs
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,7 @@ os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
   debian|ubuntu)
 | 
					   debian|ubuntu|devuan)
 | 
				
			||||||
      destination=/etc/motd.tail
 | 
					      destination=/etc/motd.tail
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
   *)
 | 
					   *)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,9 +26,9 @@ if [ ! -f "$__object/parameter/nofstab" ]; then
 | 
				
			||||||
   (
 | 
					   (
 | 
				
			||||||
printf "%s" "$(cat "$__object/parameter/device")"
 | 
					printf "%s" "$(cat "$__object/parameter/device")"
 | 
				
			||||||
printf " %s" "$path"
 | 
					printf " %s" "$path"
 | 
				
			||||||
type="$(cat "$__object/parameter/type" 2>/dev/null || echo "auto")"
 | 
					type="$(cat "$__object/parameter/type")"
 | 
				
			||||||
printf " %s" "$type"
 | 
					printf " %s" "$type"
 | 
				
			||||||
options="$(cat "$__object/parameter/options" 2>/dev/null || echo "defaults")"
 | 
					options="$(cat "$__object/parameter/options")"
 | 
				
			||||||
printf " %s" "$options"
 | 
					printf " %s" "$options"
 | 
				
			||||||
printf " %s" "$(cat "$__object/parameter/dump")"
 | 
					printf " %s" "$(cat "$__object/parameter/dump")"
 | 
				
			||||||
printf " %s\n" "$(cat "$__object/parameter/pass")"
 | 
					printf " %s\n" "$(cat "$__object/parameter/pass")"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__mount/parameter/default/options
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__mount/parameter/default/options
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					defaults
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__mount/parameter/default/type
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__mount/parameter/default/type
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					auto
 | 
				
			||||||
| 
						 | 
					@ -32,7 +32,7 @@ else
 | 
				
			||||||
   case "$os" in
 | 
					   case "$os" in
 | 
				
			||||||
         amazon|centos|fedora|redhat) type="yum" ;;
 | 
					         amazon|centos|fedora|redhat) type="yum" ;;
 | 
				
			||||||
         archlinux) type="pacman" ;;
 | 
					         archlinux) type="pacman" ;;
 | 
				
			||||||
         debian|ubuntu) type="apt" ;;
 | 
					         debian|ubuntu|devuan) type="apt" ;;
 | 
				
			||||||
         freebsd)
 | 
					         freebsd)
 | 
				
			||||||
            if [ -n "$(cat "$__object/explorer/pkgng_exists")" ]; then
 | 
					            if [ -n "$(cat "$__object/explorer/pkgng_exists")" ]; then
 | 
				
			||||||
               type="pkgng_freebsd"
 | 
					               type="pkgng_freebsd"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# 2012 Nico Schottelius (nico-cdist at schottelius.org)
 | 
					# 2012 Nico Schottelius (nico-cdist at schottelius.org)
 | 
				
			||||||
 | 
					# 2016 Darko Poljak (darko.poljak at gmail.com)
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# This file is part of cdist.
 | 
					# This file is part of cdist.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -40,12 +41,30 @@ else
 | 
				
			||||||
    pip="pip"
 | 
					    pip="pip"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					runasparam="$__object/parameter/runas"
 | 
				
			||||||
 | 
					if [ -f "$runasparam" ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    runas=$(cat "$runasparam")
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    runas=""
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$state_should" in
 | 
					case "$state_should" in
 | 
				
			||||||
    present)
 | 
					    present)
 | 
				
			||||||
 | 
					        if [ "$runas" ]
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
					            echo "su -c \"$pip install -q $name\" $runas"
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
            echo $pip install -q "$name"
 | 
					            echo $pip install -q "$name"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
    absent)
 | 
					    absent)
 | 
				
			||||||
 | 
					        if [ "$runas" ]
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
					            echo "su -c \"$pip uninstall -q -y $name\" $runas"
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
            echo $pip uninstall -q -y "$name"
 | 
					            echo $pip uninstall -q -y "$name"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
        echo "Unknown state: $state_should" >&2
 | 
					        echo "Unknown state: $state_should" >&2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,6 +30,9 @@ pip::
 | 
				
			||||||
state::
 | 
					state::
 | 
				
			||||||
    Either "present" or "absent", defaults to "present" 
 | 
					    Either "present" or "absent", defaults to "present" 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					runas::
 | 
				
			||||||
 | 
					    Run pip as specified user. By default it runs as root.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXAMPLES
 | 
					EXAMPLES
 | 
				
			||||||
--------
 | 
					--------
 | 
				
			||||||
| 
						 | 
					@ -40,6 +43,9 @@ __package_pip pyro --state present
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Use pip in a virtualenv located at /root/shinken_virtualenv
 | 
					# Use pip in a virtualenv located at /root/shinken_virtualenv
 | 
				
			||||||
__package_pip pyro --state present --pip /root/shinken_virtualenv/bin/pip
 | 
					__package_pip pyro --state present --pip /root/shinken_virtualenv/bin/pip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Use pip in a virtualenv located at /foo/shinken_virtualenv as user foo
 | 
				
			||||||
 | 
					__package_pip pyro --state present --pip /foo/shinken_virtualenv/bin/pip --runas foo
 | 
				
			||||||
--------------------------------------------------------------------------------
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,2 +1,4 @@
 | 
				
			||||||
 | 
					name
 | 
				
			||||||
pip
 | 
					pip
 | 
				
			||||||
state
 | 
					state
 | 
				
			||||||
 | 
					runas
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,7 @@ else
 | 
				
			||||||
    os="$(cat "$__global/explorer/os")"
 | 
					    os="$(cat "$__global/explorer/os")"
 | 
				
			||||||
    case "$os" in
 | 
					    case "$os" in
 | 
				
			||||||
        amazon|centos|fedora|redhat) type="yum" ;;
 | 
					        amazon|centos|fedora|redhat) type="yum" ;;
 | 
				
			||||||
        debian|ubuntu) type="apt" ;;
 | 
					        debian|ubuntu|devuan) type="apt" ;;
 | 
				
			||||||
        archlinux) type="pacman" ;;
 | 
					        archlinux) type="pacman" ;;
 | 
				
			||||||
        *)
 | 
					        *)
 | 
				
			||||||
            echo "Don't know how to manage packages on: $os" >&2
 | 
					            echo "Don't know how to manage packages on: $os" >&2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,7 +31,7 @@ else
 | 
				
			||||||
    os="$(cat "$__global/explorer/os")"
 | 
					    os="$(cat "$__global/explorer/os")"
 | 
				
			||||||
    case "$os" in
 | 
					    case "$os" in
 | 
				
			||||||
        amazon|centos|fedora|redhat) type="yum" ;;
 | 
					        amazon|centos|fedora|redhat) type="yum" ;;
 | 
				
			||||||
        debian|ubuntu) type="apt" ;;
 | 
					        debian|ubuntu|devuan) type="apt" ;;
 | 
				
			||||||
        archlinux) type="pacman" ;;
 | 
					        archlinux) type="pacman" ;;
 | 
				
			||||||
        *)
 | 
					        *)
 | 
				
			||||||
            echo "Don't know how to manage packages on: $os" >&2
 | 
					            echo "Don't know how to manage packages on: $os" >&2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@
 | 
				
			||||||
os=$(cat "$__global/explorer/os")
 | 
					os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
   ubuntu|debian|archlinux|suse|centos)
 | 
					   ubuntu|debian|archlinux|suse|centos|devuan)
 | 
				
			||||||
      __package postfix --state present
 | 
					      __package postfix --state present
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
   *)
 | 
					   *)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@
 | 
				
			||||||
os=$(cat "$__global/explorer/os")
 | 
					os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
   ubuntu|debian|archlinux|centos)
 | 
					   ubuntu|debian|archlinux|centos|devuan)
 | 
				
			||||||
      :
 | 
					      :
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
   *)
 | 
					   *)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@
 | 
				
			||||||
os=$("$__explorer/os")
 | 
					os=$("$__explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
   ubuntu|debian|archlinux|suse|centos)
 | 
					   ubuntu|debian|archlinux|suse|centos|devuan)
 | 
				
			||||||
      :
 | 
					      :
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
   *)
 | 
					   *)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,7 +21,7 @@
 | 
				
			||||||
os=$(cat "$__global/explorer/os")
 | 
					os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
   ubuntu|debian|archlinux|suse|centos)
 | 
					   ubuntu|debian|archlinux|suse|centos|devuan)
 | 
				
			||||||
      :
 | 
					      :
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
   *)
 | 
					   *)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@
 | 
				
			||||||
os=$(cat "$__global/explorer/os")
 | 
					os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
   ubuntu|debian|archlinux|centos)
 | 
					   ubuntu|debian|archlinux|centos|devuan)
 | 
				
			||||||
      echo "postfix reload"
 | 
					      echo "postfix reload"
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
   *)
 | 
					   *)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										5
									
								
								cdist/conf/type/__pyvenv/explorer/group
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								cdist/conf/type/__pyvenv/explorer/group
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					destination="/$__object_id"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					stat --print "%G" ${destination} 2>/dev/null || exit 0
 | 
				
			||||||
							
								
								
									
										5
									
								
								cdist/conf/type/__pyvenv/explorer/owner
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								cdist/conf/type/__pyvenv/explorer/owner
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					destination="/$__object_id"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					stat --print "%U" ${destination} 2>/dev/null || exit 0
 | 
				
			||||||
							
								
								
									
										9
									
								
								cdist/conf/type/__pyvenv/explorer/state
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								cdist/conf/type/__pyvenv/explorer/state
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					destination="/$__object_id"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -d "$destination" ]; then
 | 
				
			||||||
 | 
					   echo present
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					   echo absent
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
							
								
								
									
										67
									
								
								cdist/conf/type/__pyvenv/gencode-remote
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										67
									
								
								cdist/conf/type/__pyvenv/gencode-remote
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2016 Darko Poljak (darko.poljak at gmail.com)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					state_is="$(cat "$__object/explorer/state")"
 | 
				
			||||||
 | 
					owner_is="$(cat "$__object/explorer/owner")"
 | 
				
			||||||
 | 
					group_is="$(cat "$__object/explorer/group")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					state_should="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					owner="$(cat "$__object/parameter/owner")"
 | 
				
			||||||
 | 
					group="$(cat "$__object/parameter/group")"
 | 
				
			||||||
 | 
					mode="$(cat "$__object/parameter/mode")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[  "$state_should" = "$state_is" -a \
 | 
				
			||||||
 | 
					   "$owner" = "$owner_is" -a \
 | 
				
			||||||
 | 
					   "$group" = "$group_is" -a \
 | 
				
			||||||
 | 
					   -n "$mode" ] && exit 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					destination="/$__object_id"
 | 
				
			||||||
 | 
					venvparams="$(cat "$__object/parameter/venvparams")"
 | 
				
			||||||
 | 
					pyvenvparam="$__object/parameter/pyvenv"
 | 
				
			||||||
 | 
					if [ -f "$pyvenvparam" ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    pyvenv=$(cat "$pyvenvparam")
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    pyvenv="pyvenv"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case $state_should in
 | 
				
			||||||
 | 
					    present)
 | 
				
			||||||
 | 
					        if [ "$state_should" != "$state_is" ]; then
 | 
				
			||||||
 | 
					            echo $pyvenv $venvparams "$destination"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        if [ \( -n "$owner" -a "$owner_is" != "$owner" \) -o \
 | 
				
			||||||
 | 
					             \( -n "$group" -a "$group_is" != "$group" \) ]; then
 | 
				
			||||||
 | 
					            echo chown -R "${owner}:${group}" "$destination"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        if [ -n "$mode" ]; then
 | 
				
			||||||
 | 
					            echo chmod -R "$mode" "$destination"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					    absent)
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    *)
 | 
				
			||||||
 | 
					        echo "Unknown state: $state_should" >&2
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
							
								
								
									
										80
									
								
								cdist/conf/type/__pyvenv/man.text
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										80
									
								
								cdist/conf/type/__pyvenv/man.text
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,80 @@
 | 
				
			||||||
 | 
					cdist-type__pyvenv(7)
 | 
				
			||||||
 | 
					=====================
 | 
				
			||||||
 | 
					Darko Poljak <darko.poljak--@--gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NAME
 | 
				
			||||||
 | 
					----
 | 
				
			||||||
 | 
					cdist-type__pyvenv - Create or remove python virtual environment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					This cdist type allows you to create or remove python virtual
 | 
				
			||||||
 | 
					environment using pyvenv.
 | 
				
			||||||
 | 
					It assumes pyvenv is already installed. Concrete package depends
 | 
				
			||||||
 | 
					on concrete OS and/or OS version/distribution.
 | 
				
			||||||
 | 
					Ensure this for e.g. in your init manifest as in the following example:
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					case "$__target_host" in
 | 
				
			||||||
 | 
					    localhost)
 | 
				
			||||||
 | 
					        __package python3-venv --state present
 | 
				
			||||||
 | 
					        require="__package/python3-venv" __pyvenv /home/darko/testenv --pyvenv "pyvenv-3.4" --owner darko --group darko --mode 740 --state present
 | 
				
			||||||
 | 
					        require="__pyvenv/home/darko/testenv" __package_pip docopt --pip /home/darko/testenv/bin/pip --runas darko --state present
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRED PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OPTIONAL PARAMETERS
 | 
				
			||||||
 | 
					-------------------
 | 
				
			||||||
 | 
					state::
 | 
				
			||||||
 | 
					    Either "present" or "absent", defaults to "present"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					group::
 | 
				
			||||||
 | 
					   Group to chgrp to
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mode::
 | 
				
			||||||
 | 
					   Unix permissions, suitable for chmod
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					owner::
 | 
				
			||||||
 | 
					   User to chown to
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pyvenv::
 | 
				
			||||||
 | 
					   Use this specific pyvenv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					venvparams::
 | 
				
			||||||
 | 
					   Specific parameters to pass to pyvenv invocation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXAMPLES
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					__pyvenv /home/services/djangoenv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Use specific pyvenv 
 | 
				
			||||||
 | 
					__pyvenv /home/foo/fooenv --pyvenv /usr/local/bin/pyvenv-3.4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create python virtualenv for user foo.
 | 
				
			||||||
 | 
					__pyvenv /home/foo/fooenv --group foo --user foo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create python virtualenv with specific parameters.
 | 
				
			||||||
 | 
					__pyvenv /home/services/djangoenv --venvparams "--copies --system-site-packages"
 | 
				
			||||||
 | 
					--------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SEE ALSO
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					- cdist-type(7)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYING
 | 
				
			||||||
 | 
					-------
 | 
				
			||||||
 | 
					Copyright \(C) 2016 Darko Poljak. Free use of this software is
 | 
				
			||||||
 | 
					granted under the terms of the GNU General Public License version 3 (GPLv3).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										46
									
								
								cdist/conf/type/__pyvenv/manifest
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										46
									
								
								cdist/conf/type/__pyvenv/manifest
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,46 @@
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 2016 Darko Poljak (darko.poljak at gmail.com)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 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/>.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# It assumes pyvenv is already installed. Concrete packages
 | 
				
			||||||
 | 
					# or installation procedures depend on concrete OS and/or OS
 | 
				
			||||||
 | 
					# version/distribution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					state_should="$(cat "$__object/parameter/state")"
 | 
				
			||||||
 | 
					owner="$(cat "$__object/parameter/owner")"
 | 
				
			||||||
 | 
					group="$(cat "$__object/parameter/group")"
 | 
				
			||||||
 | 
					mode="$(cat "$__object/parameter/mode")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case "$state_should" in
 | 
				
			||||||
 | 
					    present)
 | 
				
			||||||
 | 
					        :
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    absent)
 | 
				
			||||||
 | 
					        __directory "$__object_id" --state absent \
 | 
				
			||||||
 | 
					            --owner "$owner" \
 | 
				
			||||||
 | 
					            --group "$group" \
 | 
				
			||||||
 | 
					            --mode "$mode"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    *)
 | 
				
			||||||
 | 
					        echo "Unknown state: $state_should" >&2
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__pyvenv/parameter/default/group
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__pyvenv/parameter/default/group
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__pyvenv/parameter/default/mode
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__pyvenv/parameter/default/mode
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__pyvenv/parameter/default/owner
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__pyvenv/parameter/default/owner
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__pyvenv/parameter/default/state
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__pyvenv/parameter/default/state
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					present
 | 
				
			||||||
							
								
								
									
										1
									
								
								cdist/conf/type/__pyvenv/parameter/default/venvparams
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cdist/conf/type/__pyvenv/parameter/default/venvparams
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										6
									
								
								cdist/conf/type/__pyvenv/parameter/optional
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								cdist/conf/type/__pyvenv/parameter/optional
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					state
 | 
				
			||||||
 | 
					group
 | 
				
			||||||
 | 
					owner
 | 
				
			||||||
 | 
					mode
 | 
				
			||||||
 | 
					venvparams
 | 
				
			||||||
 | 
					pyvenv
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@ if [ "$init" = 'systemd' ]; then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
    case "$os" in
 | 
					    case "$os" in
 | 
				
			||||||
        debian|openwrt)
 | 
					        debian|openwrt|devuan)
 | 
				
			||||||
            state="present"
 | 
					            state="present"
 | 
				
			||||||
            [ -f "/etc/rc$runlevel.d/S"??"$name" ] || state="absent"
 | 
					            [ -f "/etc/rc$runlevel.d/S"??"$name" ] || state="absent"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,8 +61,6 @@ case "$state_should" in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                amazon|centos|fedora|owl|redhat|suse)
 | 
					                amazon|centos|fedora|owl|redhat|suse)
 | 
				
			||||||
                    echo chkconfig \"$name\" on
 | 
					                    echo chkconfig \"$name\" on
 | 
				
			||||||
                            echo "Unsupported version $os_version of $os" >&2
 | 
					 | 
				
			||||||
                            exit 1
 | 
					 | 
				
			||||||
                ;;
 | 
					                ;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                openwrt)
 | 
					                openwrt)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@ timezone="$__object_id"
 | 
				
			||||||
os=$(cat "$__global/explorer/os")
 | 
					os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
   ubuntu|debian)
 | 
					   ubuntu|debian|devuan)
 | 
				
			||||||
      echo "echo \"$timezone\" > /etc/timezone"
 | 
					      echo "echo \"$timezone\" > /etc/timezone"
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
esac
 | 
					esac
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@ timezone="$__object_id"
 | 
				
			||||||
os=$(cat "$__global/explorer/os")
 | 
					os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
    archlinux|debian|ubuntu)
 | 
					    archlinux|debian|ubuntu|devuan)
 | 
				
			||||||
        __package tzdata
 | 
					        __package tzdata
 | 
				
			||||||
        export require="__package/tzdata"
 | 
					        export require="__package/tzdata"
 | 
				
			||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,8 @@ Changelog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
next:
 | 
					next:
 | 
				
			||||||
	* Core: Fix bug with parallel hosts operation when output path is specifed (Darko Poljak)
 | 
						* Core: Fix bug with parallel hosts operation when output path is specifed (Darko Poljak)
 | 
				
			||||||
 | 
						* Type __package_pip: Add support for running as specified user (useful for pip in venv) (Darko Poljak)
 | 
				
			||||||
 | 
						* New type: __pyvenv: Manage python virtualenv (Darko Poljak)
 | 
				
			||||||
	* Core: Add CDIST_REMOTE_COPY/EXEC env variables and multiplexing options for default scp/ssh (Darko Poljak)
 | 
						* Core: Add CDIST_REMOTE_COPY/EXEC env variables and multiplexing options for default scp/ssh (Darko Poljak)
 | 
				
			||||||
	* Types: Remove bashisms in scripts (Darko Poljak)
 | 
						* Types: Remove bashisms in scripts (Darko Poljak)
 | 
				
			||||||
	* Core: Fix bug in remote command with environment (Darko Poljak)
 | 
						* Core: Fix bug in remote command with environment (Darko Poljak)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@
 | 
				
			||||||
os=$(cat "$__global/explorer/os")
 | 
					os=$(cat "$__global/explorer/os")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
    ubuntu|debian|archlinux)
 | 
					    ubuntu|debian|archlinux|devuan)
 | 
				
			||||||
        __package autofs --state present
 | 
					        __package autofs --state present
 | 
				
			||||||
        __start_on_boot autofs --state present
 | 
					        __start_on_boot autofs --state present
 | 
				
			||||||
    ;;
 | 
					    ;;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,7 +28,7 @@ not_supported() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
case "$os" in
 | 
					case "$os" in
 | 
				
			||||||
   ubuntu|debian|archlinux)
 | 
					   ubuntu|debian|archlinux|devuan)
 | 
				
			||||||
      echo "pkill -HUP automount"
 | 
					      echo "pkill -HUP automount"
 | 
				
			||||||
   ;;
 | 
					   ;;
 | 
				
			||||||
   *)
 | 
					   *)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue