mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-25 09:41:04 +01:00
fix(installer): require explicit noninteractive consent
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
70e0b05026
commit
57a63e44e5
5 files changed
+35
-7
No files matched your search
@@ -301,7 +301,14 @@ Paperclip is a full control plane, not a wrapper. Before you build any of this y
|
||||
Open source. Self-hosted. No Paperclip account required.
|
||||
|
||||
```bash
|
||||
curl -fsSL https://paperclip.ing/install.sh | bash
|
||||
curl -fsSLO https://paperclip.ing/install.sh
|
||||
curl -fsSLO https://paperclip.ing/install.sh.sha256
|
||||
if command -v sha256sum >/dev/null 2>&1; then
|
||||
sha256sum -c install.sh.sha256
|
||||
else
|
||||
shasum -a 256 -c install.sh.sha256
|
||||
fi
|
||||
bash install.sh
|
||||
```
|
||||
|
||||
The installer ensures Node.js 20 or newer is available, installs a managed
|
||||
|
||||
+8
-1
@@ -17,7 +17,14 @@ pnpm paperclipai --help
|
||||
Recommended installation and interactive onboarding:
|
||||
|
||||
```sh
|
||||
curl -fsSL https://paperclip.ing/install.sh | bash
|
||||
curl -fsSLO https://paperclip.ing/install.sh
|
||||
curl -fsSLO https://paperclip.ing/install.sh.sha256
|
||||
if command -v sha256sum >/dev/null 2>&1; then
|
||||
sha256sum -c install.sh.sha256
|
||||
else
|
||||
shasum -a 256 -c install.sh.sha256
|
||||
fi
|
||||
bash install.sh
|
||||
```
|
||||
|
||||
First-time local bootstrap from a source checkout:
|
||||
|
||||
+8
-1
@@ -10,7 +10,14 @@ rollback, git-ref installs, and a stable entrypoint for the background service.
|
||||
On macOS, Linux, or WSL2:
|
||||
|
||||
```sh
|
||||
curl -fsSL https://paperclip.ing/install.sh | bash
|
||||
curl -fsSLO https://paperclip.ing/install.sh
|
||||
curl -fsSLO https://paperclip.ing/install.sh.sha256
|
||||
if command -v sha256sum >/dev/null 2>&1; then
|
||||
sha256sum -c install.sh.sha256
|
||||
else
|
||||
shasum -a 256 -c install.sh.sha256
|
||||
fi
|
||||
bash install.sh
|
||||
```
|
||||
|
||||
The bootstrap script:
|
||||
|
||||
+5
-4
@@ -26,8 +26,9 @@ usage() {
|
||||
Install Paperclip on macOS, Linux, or WSL2.
|
||||
|
||||
Usage:
|
||||
curl -fsSL https://paperclip.ing/install.sh | bash
|
||||
curl -fsSL https://paperclip.ing/install.sh | bash -s -- [options]
|
||||
curl -fsSLO https://paperclip.ing/install.sh
|
||||
bash install.sh [options]
|
||||
curl -fsSL https://paperclip.ing/install.sh | bash -s -- --no-prompt [options]
|
||||
|
||||
Options:
|
||||
--canary Install the canary channel
|
||||
@@ -155,8 +156,8 @@ if [ -n "$REF" ] || [ -n "$REPO" ]; then
|
||||
fail "git-ref installs are not available in this installer build; omit --ref and --repo"
|
||||
fi
|
||||
|
||||
if [ ! -t 0 ] || [ ! -t 1 ]; then
|
||||
NO_PROMPT=1
|
||||
if { [ ! -t 0 ] || [ ! -t 1 ]; } && [ "$NO_PROMPT" != "1" ]; then
|
||||
fail "non-interactive installation requires explicit --no-prompt; download the script first for interactive review"
|
||||
fi
|
||||
|
||||
if [ "$VERBOSE" = "1" ]; then
|
||||
|
||||
@@ -101,6 +101,12 @@ fi
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo "==> piped mode requires explicit consent"
|
||||
if run_with_node piped-rejected bash -c 'cat /paperclip-scripts/install.sh | bash -s -- --no-onboard'; then
|
||||
echo "Expected piped install without --no-prompt to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> piped --no-prompt"
|
||||
run_with_node piped bash -c 'cat /paperclip-scripts/install.sh | bash -s -- --no-prompt --no-onboard'
|
||||
assert_line "$RESULTS_DIR/piped.args" "--yes"
|
||||
|
||||
Reference in new issue
Block a user