mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-22 02:47:48 +08:00
This patch is delaying the point where permissions are dropped into the `start_ipfs` script. This way, instead of exiting on permission issues, we can fix them on our own inside the script, then drop privileges and continue doing ipfs specific stuff with the correct user. I've removed the `chmod 0777` step from the readme since it's not needed anymore. License: MIT Signed-off-by: kpcyrd <git@rxv.cc>
43 lines
1.3 KiB
Bash
43 lines
1.3 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
user=ipfs
|
|
repo="$IPFS_PATH"
|
|
|
|
if [ `id -u` -eq 0 ]; then
|
|
# ensure folder is writable
|
|
su-exec "$user" test -w "$repo" || chown -R -- "$user" "$repo"
|
|
# restart script with new privileges
|
|
exec su-exec "$user" "$0" "$@"
|
|
fi
|
|
|
|
# 2nd invocation with regular user
|
|
ipfs version
|
|
|
|
if [ -e "$repo/config" ]; then
|
|
echo "Found IPFS fs-repo at $repo"
|
|
else
|
|
ipfs init
|
|
ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
|
|
ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
|
|
fi
|
|
|
|
# if the first argument is daemon
|
|
if [ "$1" = "daemon" ]; then
|
|
# filter the first argument until
|
|
# https://github.com/ipfs/go-ipfs/pull/3573
|
|
# has been resolved
|
|
shift
|
|
else
|
|
# print deprecation warning
|
|
# go-ipfs used to hardcode "ipfs daemon" in it's entrypoint
|
|
# this workaround supports the new syntax so people start setting daemon explicitly
|
|
# when overwriting CMD, making this PR safe to merge
|
|
echo "DEPRECATED: arguments have been set but the first argument isn't 'daemon'" >&2
|
|
echo "DEPRECATED: run 'docker run ipfs/go-ipfs daemon $@' instead" >&2
|
|
echo "DEPRECATED: see the following PRs for more information:" >&2
|
|
echo "DEPRECATED: * https://github.com/ipfs/go-ipfs/pull/3573" >&2
|
|
echo "DEPRECATED: * https://github.com/ipfs/go-ipfs/pull/3685" >&2
|
|
fi
|
|
|
|
exec ipfs daemon "$@"
|