@trendify/cli 0.1.31 → 0.1.33

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.
@@ -0,0 +1,46 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ resolve_script_path() {
5
+ TARGET_PATH=$1
6
+
7
+ while [ -L "$TARGET_PATH" ]; do
8
+ LINK_TARGET=$(readlink "$TARGET_PATH")
9
+
10
+ case "$LINK_TARGET" in
11
+ /*)
12
+ TARGET_PATH=$LINK_TARGET
13
+ ;;
14
+ *)
15
+ TARGET_DIR=$(CDPATH= cd -- "$(dirname -- "$TARGET_PATH")" && pwd)
16
+ TARGET_PATH="$TARGET_DIR/$LINK_TARGET"
17
+ ;;
18
+ esac
19
+ done
20
+
21
+ TARGET_DIR=$(CDPATH= cd -- "$(dirname -- "$TARGET_PATH")" && pwd -P)
22
+ printf '%s/%s\n' "$TARGET_DIR" "$(basename -- "$TARGET_PATH")"
23
+ }
24
+
25
+ SCRIPT_PATH=$(resolve_script_path "$0")
26
+ SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$SCRIPT_PATH")" && pwd -P)
27
+ PACKAGE_ROOT=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)
28
+ UPDATE_EXIT_CODE=42
29
+ STATE_FILE_DEFAULT="${HOME}/.trendify/runtime/update-state.env"
30
+
31
+ mkdir -p "$(dirname -- "$STATE_FILE_DEFAULT")"
32
+
33
+ export TRENDIFY_UPDATE_STATE_FILE="${TRENDIFY_UPDATE_STATE_FILE:-$STATE_FILE_DEFAULT}"
34
+ export TRENDIFY_CLI_COMMAND="${TRENDIFY_CLI_COMMAND:-$(command -v trendify 2>/dev/null || printf 'trendify')}"
35
+
36
+ if node "$PACKAGE_ROOT/dist/cli.entry.js" "$@"; then
37
+ APP_EXIT_CODE=0
38
+ else
39
+ APP_EXIT_CODE=$?
40
+ fi
41
+
42
+ if [ "$APP_EXIT_CODE" -eq "$UPDATE_EXIT_CODE" ] && [ -f "$TRENDIFY_UPDATE_STATE_FILE" ]; then
43
+ exec /bin/sh "$PACKAGE_ROOT/scripts/update-runner.sh" "$TRENDIFY_UPDATE_STATE_FILE" "$@"
44
+ fi
45
+
46
+ exit "$APP_EXIT_CODE"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trendify/cli",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
4
4
  "description": "CLI do Trendify para descoberta de temas e fluxos de conta.",
5
5
  "type": "module",
6
6
  "main": "dist/cli.entry.js",
@@ -0,0 +1,84 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ SELF_PATH=$0
5
+ STATE_FILE=${1:?state file path is required}
6
+ shift
7
+
8
+ cleanup() {
9
+ if [ -n "${TRENDIFY_TEMP_UPDATER_PATH:-}" ]; then
10
+ rm -f "$TRENDIFY_TEMP_UPDATER_PATH" >/dev/null 2>&1 || true
11
+ fi
12
+ }
13
+
14
+ write_state_file() {
15
+ NEXT_STATUS=$1
16
+ TEMP_STATE_FILE="${STATE_FILE}.tmp.$$"
17
+
18
+ cat >"$TEMP_STATE_FILE" <<EOF
19
+ STATUS=$NEXT_STATUS
20
+ PACKAGE_NAME=${PACKAGE_NAME}
21
+ CURRENT_VERSION=${CURRENT_VERSION}
22
+ TARGET_VERSION=${TARGET_VERSION}
23
+ REQUESTED_AT=${REQUESTED_AT}
24
+ EOF
25
+
26
+ mv "$TEMP_STATE_FILE" "$STATE_FILE"
27
+ }
28
+
29
+ reset_terminal() {
30
+ if [ -t 0 ]; then
31
+ stty sane >/dev/null 2>&1 || true
32
+ stty echo >/dev/null 2>&1 || true
33
+ printf '\033c'
34
+ printf '\033[2J\033[3J\033[H'
35
+ fi
36
+ }
37
+
38
+ if [ "${TRENDIFY_UPDATER_STAGE:-launcher}" != "temp" ]; then
39
+ TEMP_UPDATER_PATH=$(mktemp "${TMPDIR:-/tmp}/trendify-cli-updater.XXXXXX.sh")
40
+ cp "$SELF_PATH" "$TEMP_UPDATER_PATH"
41
+ chmod 700 "$TEMP_UPDATER_PATH"
42
+ exec env TRENDIFY_UPDATER_STAGE=temp TRENDIFY_TEMP_UPDATER_PATH="$TEMP_UPDATER_PATH" TRENDIFY_CLI_COMMAND="${TRENDIFY_CLI_COMMAND:-trendify}" /bin/sh "$TEMP_UPDATER_PATH" "$STATE_FILE" "$@"
43
+ fi
44
+
45
+ trap cleanup EXIT INT TERM
46
+
47
+ if [ ! -f "$STATE_FILE" ]; then
48
+ exit 0
49
+ fi
50
+
51
+ . "$STATE_FILE"
52
+
53
+ if [ "${STATUS:-}" != "pending" ]; then
54
+ exit 0
55
+ fi
56
+
57
+ PACKAGE_NAME=${PACKAGE_NAME:-@trendify/cli}
58
+ CURRENT_VERSION=${CURRENT_VERSION:-desconhecida}
59
+ TARGET_VERSION=${TARGET_VERSION:-latest}
60
+ REQUESTED_AT=${REQUESTED_AT:-unknown}
61
+
62
+ reset_terminal
63
+ printf 'Trendify CLI\n'
64
+ printf '[1/4] Atualizador externo iniciado.\n'
65
+ printf '[2/4] Atualizando %s de v%s para v%s...\n\n' "$PACKAGE_NAME" "$CURRENT_VERSION" "$TARGET_VERSION"
66
+
67
+ write_state_file "updating"
68
+
69
+ if ! npm install --global "${PACKAGE_NAME}@${TARGET_VERSION}"; then
70
+ write_state_file "failed"
71
+ printf '\nFalha ao atualizar automaticamente o CLI.\n' >&2
72
+ printf 'Execute manualmente: npm install -g %s@%s\n' "$PACKAGE_NAME" "$TARGET_VERSION" >&2
73
+ exit 1
74
+ fi
75
+
76
+ rm -f "$STATE_FILE"
77
+ hash -r 2>/dev/null || true
78
+
79
+ printf '\n[3/4] Atualizacao concluida.\n'
80
+ printf '[4/4] Reiniciando o CLI em um processo limpo...\n\n'
81
+ sleep 0.75
82
+ reset_terminal
83
+
84
+ exec "${TRENDIFY_CLI_COMMAND:-trendify}" "$@"