184b99d500
A structure similar to the one used for secrets would be better, but we don't want to break backwards compatibility. Also document that omitting the password field in the request body will preserve the current password when updating a user using the REST API. Added a test case for this. Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
132 lines
3.2 KiB
Bash
Executable file
132 lines
3.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
NFPM_VERSION=2.28.0
|
|
NFPM_ARCH=${NFPM_ARCH:-amd64}
|
|
if [ -z ${SFTPGO_VERSION} ]
|
|
then
|
|
LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
|
|
NUM_COMMITS_FROM_TAG=$(git rev-list ${LATEST_TAG}.. --count)
|
|
VERSION=$(echo "${LATEST_TAG}" | awk -F. -v OFS=. '{$NF++;print}')-dev.${NUM_COMMITS_FROM_TAG}
|
|
else
|
|
VERSION=${SFTPGO_VERSION}
|
|
fi
|
|
|
|
mkdir dist
|
|
echo -n ${VERSION} > dist/version
|
|
cd dist
|
|
BASE_DIR="../.."
|
|
|
|
if [ -f "${BASE_DIR}/output/bash_completion/sftpgo" ]
|
|
then
|
|
cp ${BASE_DIR}/output/bash_completion/sftpgo sftpgo-completion.bash
|
|
else
|
|
$BASE_DIR/sftpgo gen completion bash > sftpgo-completion.bash
|
|
fi
|
|
|
|
if [ -d "${BASE_DIR}/output/man/man1" ]
|
|
then
|
|
cp -r ${BASE_DIR}/output/man/man1 .
|
|
else
|
|
$BASE_DIR/sftpgo gen man -d man1
|
|
fi
|
|
|
|
if [ ! -f ${BASE_DIR}/sftpgo ]
|
|
then
|
|
cp ${BASE_DIR}/output/sftpgo ${BASE_DIR}/sftpgo
|
|
chmod 755 ${BASE_DIR}/sftpgo
|
|
fi
|
|
|
|
cp ${BASE_DIR}/sftpgo.json .
|
|
sed -i "s|sftpgo.db|/var/lib/sftpgo/sftpgo.db|" sftpgo.json
|
|
sed -i "s|\"users_base_dir\": \"\",|\"users_base_dir\": \"/srv/sftpgo/data\",|" sftpgo.json
|
|
sed -i "s|\"backups\"|\"/srv/sftpgo/backups\"|" sftpgo.json
|
|
sed -i "s|\"certs\"|\"/var/lib/sftpgo/certs\"|" sftpgo.json
|
|
|
|
cat >nfpm.yaml <<EOF
|
|
name: "sftpgo"
|
|
arch: "${NFPM_ARCH}"
|
|
platform: "linux"
|
|
version: ${VERSION}
|
|
release: 1
|
|
section: "net"
|
|
priority: "optional"
|
|
maintainer: "Nicola Murino <nicola.murino@gmail.com>"
|
|
description: |
|
|
Fully featured and highly configurable SFTP server
|
|
SFTPGo has optional HTTP, FTP/S and WebDAV support.
|
|
It can serve local filesystem, S3 (Compatible) Object Storage,
|
|
Google Cloud Storage, Azure Blob Storage, SFTP.
|
|
vendor: "SFTPGo"
|
|
homepage: "https://github.com/drakkan/sftpgo"
|
|
license: "AGPL-3.0"
|
|
provides:
|
|
- sftpgo
|
|
contents:
|
|
- src: "${BASE_DIR}/sftpgo${BIN_SUFFIX}"
|
|
dst: "/usr/bin/sftpgo"
|
|
|
|
- src: "./sftpgo-completion.bash"
|
|
dst: "/usr/share/bash-completion/completions/sftpgo"
|
|
|
|
- src: "./man1/*"
|
|
dst: "/usr/share/man/man1/"
|
|
|
|
- src: "${BASE_DIR}/init/sftpgo.service"
|
|
dst: "/lib/systemd/system/sftpgo.service"
|
|
|
|
- src: "${BASE_DIR}/templates/*"
|
|
dst: "/usr/share/sftpgo/templates"
|
|
|
|
- src: "${BASE_DIR}/static/*"
|
|
dst: "/usr/share/sftpgo/static"
|
|
|
|
- src: "${BASE_DIR}/openapi/*"
|
|
dst: "/usr/share/sftpgo/openapi"
|
|
|
|
- src: "./sftpgo.json"
|
|
dst: "/etc/sftpgo/sftpgo.json"
|
|
type: "config|noreplace"
|
|
|
|
- dst: "/srv/sftpgo"
|
|
type: dir
|
|
|
|
- dst: "/var/lib/sftpgo"
|
|
type: dir
|
|
|
|
- dst: "/etc/sftpgo/env.d"
|
|
type: dir
|
|
|
|
overrides:
|
|
deb:
|
|
recommends:
|
|
- bash-completion
|
|
- mime-support
|
|
scripts:
|
|
postinstall: ../scripts/deb/postinstall.sh
|
|
preremove: ../scripts/deb/preremove.sh
|
|
postremove: ../scripts/deb/postremove.sh
|
|
rpm:
|
|
recommends:
|
|
- bash-completion
|
|
- mailcap
|
|
scripts:
|
|
postinstall: ../scripts/rpm/postinstall
|
|
preremove: ../scripts/rpm/preremove
|
|
postremove: ../scripts/rpm/postremove
|
|
|
|
rpm:
|
|
compression: xz
|
|
|
|
deb:
|
|
compression: xz
|
|
|
|
EOF
|
|
|
|
curl --retry 5 --retry-delay 2 --connect-timeout 10 -L -O \
|
|
https://github.com/goreleaser/nfpm/releases/download/v${NFPM_VERSION}/nfpm_${NFPM_VERSION}_Linux_x86_64.tar.gz
|
|
tar xvf nfpm_${NFPM_VERSION}_Linux_x86_64.tar.gz nfpm
|
|
chmod 755 nfpm
|
|
mkdir rpm
|
|
./nfpm -f nfpm.yaml pkg -p rpm -t rpm
|
|
mkdir deb
|
|
./nfpm -f nfpm.yaml pkg -p deb -t deb
|