fostrom 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dl-agent.sh +26 -10
  2. package/package.json +1 -1
package/dl-agent.sh CHANGED
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # Usage: ./dl-agent.sh <directory>
6
6
 
7
- VERSION="v0.0.14"
7
+ VERSION="v0.0.15"
8
8
 
9
9
  # CDN URLs in order of preference
10
10
  CDN_PRIMARY="https://cdn.fostrom.dev/fostrom-device-agent/$VERSION"
@@ -29,7 +29,13 @@ download_file() {
29
29
  if command -v curl >/dev/null 2>&1; then
30
30
  curl -fsSL --connect-timeout 10 --max-time 300 "$URL" -o "$OUTPUT" 2>/dev/null
31
31
  elif command -v wget >/dev/null 2>&1; then
32
- wget -q --timeout=10 --tries=1 -O "$OUTPUT" "$URL" 2>/dev/null
32
+ # BusyBox wget often lacks GNU long opts like --tries/--timeout.
33
+ if wget --help 2>&1 | grep -q -- '--tries'; then
34
+ wget -q --timeout=10 --tries=1 -O "$OUTPUT" "$URL" 2>/dev/null
35
+ else
36
+ # BusyBox-compatible fallback (fewer assumptions)
37
+ wget -q -O "$OUTPUT" "$URL" 2>/dev/null
38
+ fi
33
39
  else
34
40
  die "No download tool found (curl or wget required)"
35
41
  fi
@@ -50,7 +56,9 @@ try_download() {
50
56
 
51
57
  create_temp_dir() {
52
58
  if command -v mktemp >/dev/null 2>&1; then
53
- mktemp -d 2>/dev/null || mktemp -d -t 'fostrom'
59
+ mktemp -d -t 'fostrom.XXXXXX' 2>/dev/null \
60
+ || mktemp -d "${TMPDIR:-/tmp}/fostrom.XXXXXX" 2>/dev/null \
61
+ || mktemp -d 2>/dev/null
54
62
  else
55
63
  TEMP_DIR="/tmp/fostrom.$$"
56
64
  mkdir -p "$TEMP_DIR" || die "Cannot create temporary directory"
@@ -60,12 +68,20 @@ create_temp_dir() {
60
68
 
61
69
  verify_checksum() {
62
70
  CHECKSUM_FILE="$1"
71
+ TARGET_FILE="$2"
72
+
73
+ HASH_FILE="$TEMP_DIR/$TARGET_FILE.sha256"
74
+
75
+ awk -v f="$TARGET_FILE" '
76
+ { name=$2; sub(/^\*/, "", name) }
77
+ name==f { print; found=1 }
78
+ END { exit !found }
79
+ ' "$CHECKSUM_FILE" > "$HASH_FILE" || return 1
63
80
 
64
- # Try sha256sum (Linux) first, then shasum (macOS)
65
81
  if command -v sha256sum >/dev/null 2>&1; then
66
- sha256sum -c --ignore-missing "$CHECKSUM_FILE" >/dev/null 2>&1
82
+ sha256sum -c "$HASH_FILE" >/dev/null 2>&1
67
83
  elif command -v shasum >/dev/null 2>&1; then
68
- shasum -a 256 -c --ignore-missing "$CHECKSUM_FILE" >/dev/null 2>&1
84
+ shasum -a 256 -c "$HASH_FILE" >/dev/null 2>&1
69
85
  else
70
86
  printf "Warning: No checksum verification tool found, skipping verification\n" >&2
71
87
  return 0
@@ -94,7 +110,7 @@ download_and_verify() {
94
110
 
95
111
  # Verify checksum
96
112
  cd "$TEMP_DIR"
97
- if ! verify_checksum "fostrom-device-agent.sha256"; then
113
+ if ! verify_checksum "fostrom-device-agent.sha256" "$FILENAME"; then
98
114
  die "Checksum verification failed"
99
115
  fi
100
116
  cd - >/dev/null
@@ -131,13 +147,13 @@ main() {
131
147
  case "$ARCH" in
132
148
  x86_64|amd64) ARCH="amd64" ;;
133
149
  aarch64|arm64) ARCH="arm64" ;;
134
- armv6l) ARCH="armv6" ;;
150
+ armv6l) ARCH="armv6hf" ;;
135
151
  riscv64) ARCH="riscv64" ;;
136
152
  *) die "Unsupported architecture: $ARCH" ;;
137
153
  esac
138
154
  ;;
139
155
  Darwin*)
140
- OS="apple"
156
+ OS="macos"
141
157
  case "$ARCH" in
142
158
  x86_64|amd64) ARCH="amd64" ;;
143
159
  aarch64|arm64) ARCH="arm64" ;;
@@ -159,7 +175,7 @@ main() {
159
175
  download_and_verify "$FILENAME" "$LOCATION"
160
176
 
161
177
  # Remove quarantine on macOS
162
- if [ "$OS" = "apple" ]; then
178
+ if [ "$OS" = "macos" ]; then
163
179
  xattr -r -d com.apple.quarantine "$LOCATION/$FILENAME" 2>/dev/null || true
164
180
  fi
165
181
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fostrom",
3
- "version": "0.0.16",
3
+ "version": "0.0.17",
4
4
  "description": "Fostrom's Official Device SDK for JS. Fostrom (https://fostrom.io) is an IoT Cloud Platform.",
5
5
  "keywords": [
6
6
  "fostrom",