# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Contributor: Olivier Mauras <olivier@mauras.ch>
# Maintainer: Olivier Mauras <olivier@mauras.ch>
setvar pkgname = 'salt'
setvar pkgver = '2017.7.1'
setvar pkgrel = '0'
setvar pkgdesc = ""A parallel remote execution system""
setvar url = ""https://github.com/saltstack/salt""
setvar arch = ""noarch""
setvar license = ""ASL-2.0""
setvar depends = ""py2-tornado py2-yaml py2-jinja2 py2-markupsafe py2-msgpack py2-crypto py2-zmq
	py2-six py2-requests py2-futures py2-pygit2 py2-dateutil procps""
setvar makedepends = ""python2-dev py2-libcloud""
setvar subpackages = ""$pkgname-doc $pkgname-master $pkgname-minion $pkgname-syndic $pkgname-api
	$pkgname-cloud $pkgname-ssh""
setvar source = ""$pkgname-$pkgver.tar.gz::https://codeload.github.com/saltstack/$pkgname/tar.gz/v$pkgver
	salt-api.confd
	salt-api.initd
	salt-master.confd
	salt-master.initd
	salt-minion.confd
	salt-minion.initd
	salt-syndic.confd
	salt-syndic.initd
	""
setvar builddir = ""$srcdir/$pkgname-$pkgver""

proc build {
	cd $builddir

	python2 setup.py build || return 1
}

proc package {
	cd $builddir

	python2 setup.py install --root="$pkgdir"/ --optimize=1 || return 1
	mkdir -p "$pkgdir"/var/log/$pkgname
}

proc master {
	setvar pkgdesc = ""Management component for salt, a parallel remote execution system""
	setvar depends = "$pkgname"

	_init_copy master || return 1
	_conf_copy master || return 1

	local i; for i in cp key master run unity {
		_submv usr/bin/salt-$i || return 1
	}
	_submv usr/bin/salt
}

proc minion {
	setvar pkgdesc = ""Client component for Salt, a parallel remote execution system""
	setvar depends = "$pkgname"

	_init_copy minion || return 1
	_conf_copy minion || return 1
	_conf_copy proxy || return 1

	local i; for i in call minion proxy {
		_submv usr/bin/salt-$i || return 1
	}
}

proc syndic {
	setvar pkgdesc = ""Master-of-master component for Salt, a parallel remote execution system""
	setvar depends = ""$pkgname-master""

	_submv usr/bin/salt-syndic
}

proc api {
	setvar pkgdesc = ""REST API for Salt, a parallel remote execution system""
	setvar depends = ""$pkgname-master""

	_init_copy api && _submv usr/bin/salt-api
}

proc cloud {
	setvar pkgdesc = ""Cloud provisioner for Salt, a parallel remote execution system""
	setvar depends = ""$pkgname-master py2-libcloud""

	_conf_copy cloud && _submv usr/bin/salt-cloud
}

proc ssh {
	setvar pkgdesc = ""Agentless SSH-based version of Salt, a parallel remote execution system""
	setvar depends = "$pkgname"

	_conf_copy roster && _submv usr/bin/salt-ssh
}

proc _submv {
	local path="$1"
	mkdir -p "$subpkgdir"/${path%/*}
	mv "$pkgdir"/$path "$subpkgdir"/$path
}

proc _init_copy {
	local type="$1"
	install -m 755 -D "$srcdir"/salt-$type.initd "$subpkgdir"/etc/init.d/salt-$type || return 1
	install -m 644 -D "$srcdir"/salt-$type.confd "$subpkgdir"/etc/conf.d/salt-$type || return 1
}

proc _conf_copy {
	local type="$1"
	mkdir -p "$subpkgdir"/etc/salt/
	cp -r "$builddir"/conf/$type* "$subpkgdir"/etc/salt/
}

setvar sha512sums = ""f675b5d5f4afa79daf65686bfc6563743183913b0d4cc22ce5220636a4abd62cd3569b7f9e32035afc7132adaba7d9c211d1b03b39227b052c0080dce9d5a915  salt-2017.7.1.tar.gz
975ba2f5e681fbd62045da61cc3dc065b148683a07b5df7eca9f131e47314eb6bfa8660ca1c06a3bd93683c7097d0ff9f8e514273dd24d82fb2de6a255e6b275  salt-api.confd
435d399bfecf431d0c713031e2ae57ce25b5c6edc98b62f33bd7a4ff1c587e3cdeb988445ae0c3e9ffc1911555c3694654d98815f9562b8a14bf0688ec1ebea6  salt-api.initd
cfbbeb8023a383e7c42d84e3346edfd068c9ec7650c4ddc3caa38534da325a67497e1f06ca02cc1f0941b7348a3af6d1dca7cd6f2bcb3612ca10e1ec98997e5a  salt-master.confd
324e687e8b0eaccb799b4a719448341a4e09cda3add102890beddaf371ac42957bbc1622f145b2b86420061655bb27f27879302b5b34c6eee1987d2dcae6b8ef  salt-master.initd
0051e13351cef8db81dc075a194bb384723f07d5591b5b4d3f3adf4180afaf7beced470ab79ceca9d1ec0dae62dbd72084eb76af009fc78411a011050a94a2ed  salt-minion.confd
c6634a592c6f3e65dd2b704cb500486bf8004c5b287d4a4d42b09af36ef129c59d6a89f005af058cf7911e8587d927b3db931186569084f13ebaca56f6ef93a0  salt-minion.initd
bafc6ea10cdafd0aef868feb35aecbe4ae6a7dff0ae42862bded85715ad763eb89e1ed27437866a7e5f2b9f7064e3c2a3fb59814487744ba4227238d95cf3818  salt-syndic.confd
d71133e834685304e0167554035ebbc861252f972bbe981cc71e45b70f15d94a28a02a369463c9a641372919689f96b62a0408b14f824ad986d536e52b1e5ec0  salt-syndic.initd""