# Copyright 2014 Jonathan Vasquez # Distributed under the terms of the GNU General Public License v2 EAPI=5 inherit user systemd GITHUB_USER="syncthing" GITHUB_REPO="syncthing" GITHUB_TAG="${PV}" NAME="syncthing" DESCRIPTION="Open Source Continuous File Synchronization" HOMEPAGE="http://syncthing.net/" SRC_URI=" amd64? ( https://github.com/${GITHUB_USER}/${GITHUB_REPO}/releases/download/v${GITHUB_TAG}/syncthing-linux-amd64-v${PV}.tar.gz )" #https://github.com/$//archive/v${GITHUB_TAG}.tar.gz -> ${P}.tar.gz #https://github.com/{GITHUB_USER}/${GITHUB_REPO}/releases/download/v${GITHUB_TAG}/syncthing-linux-amd64-v${PV}.tar.gz RESTRICT="mirror" LICENSE="GPL-3+" SLOT="0" KEYWORDS="~amd64" DEPEND=">=dev-lang/go-1.3.0" S="${WORKDIR}" configDir="/etc/${PN}" config="${configDir}/config.xml" src_install() { # Create directory structure recommended by SyncThing Documentation # Since Go is "very particular" about file locations. local newBaseDir="src/github.com/${PN}" local newWorkDir="${newBaseDir}/${PN}" mkdir -p "${newBaseDir}" mv "${P}" "${newWorkDir}" cd "${newWorkDir}" # Build SyncThing ;D go run build.go -version v${PV} -no-upgrade=true # Copy compiled binary over to image directory dobin "${WORKDIR}/syncthing-linux-amd64-v${PV}/syncthing" # Install the OpenRC init file doinitd "${FILESDIR}/init.d/${NAME}" # Install the systemd unit file systemd_newunit "${FILESDIR}/${PN}_.service" "${PN}@.service" #Install the systemd user unit file systemd_douserunit "${FILESDIR}/${PN}.service" } pkg_postinst() { if [[ ! -d "${configDir}" ]]; then mkdir "${configDir}" fi if [[ ! -e "${config}" ]]; then einfo "Generating default configuration file ..." syncthing -generate "${configDir}" # Remove 'default' folder (it has an incorrect path anyway) sed -i '//d' "${config}" fi elog "In order to be able to view the Web UI remotely (from another machine)," elog "edit your ${config} and change the 127.0.0.1:8384 to 0.0.0.0:8384 in" elog "the 'address' section." elog "" elog "After checking your config, run 'rc-config start ${PN}' to start the application." elog "Point your browser to the address above to access the Web UI." elog "" }