fss-link 1.5.7 → 1.6.0
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.
- package/README.md +1 -1
- package/bundle/fss-link.js +4785 -3183
- package/package.json +4 -1
- package/scripts/analyze-session-logs.sh +279 -0
- package/scripts/build.js +55 -0
- package/scripts/build_package.js +37 -0
- package/scripts/build_sandbox.js +195 -0
- package/scripts/build_vscode_companion.js +30 -0
- package/scripts/check-build-status.js +148 -0
- package/scripts/check-publish.js +101 -0
- package/scripts/clean.js +55 -0
- package/scripts/copy_bundle_assets.js +40 -0
- package/scripts/copy_files.js +56 -0
- package/scripts/create_alias.sh +39 -0
- package/scripts/emergency-kill-all-tests.sh +95 -0
- package/scripts/emergency-kill-vitest.sh +95 -0
- package/scripts/extract-session-logs.sh +202 -0
- package/scripts/generate-git-commit-info.js +71 -0
- package/scripts/get-previous-tag.js +213 -0
- package/scripts/get-release-version.js +119 -0
- package/scripts/index-session-logs.sh +173 -0
- package/scripts/install-linux.sh +294 -0
- package/scripts/install-macos.sh +343 -0
- package/scripts/install-windows.ps1 +427 -0
- package/scripts/local_telemetry.js +219 -0
- package/scripts/memory-monitor.sh +165 -0
- package/scripts/postinstall-message.js +31 -0
- package/scripts/prepare-package.js +51 -0
- package/scripts/process-session-log.py +302 -0
- package/scripts/quick-install.sh +195 -0
- package/scripts/sandbox_command.js +126 -0
- package/scripts/start.js +76 -0
- package/scripts/telemetry.js +85 -0
- package/scripts/telemetry_gcp.js +188 -0
- package/scripts/telemetry_utils.js +421 -0
- package/scripts/test-windows-paths.js +51 -0
- package/scripts/tests/get-release-version.test.js +110 -0
- package/scripts/tests/test-setup.ts +12 -0
- package/scripts/tests/vitest.config.ts +20 -0
- package/scripts/version.js +83 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# FSS Link Session Log RAG Indexer
|
|
3
|
+
# Indexes processed session logs with FSS-RAG for powerful searching
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
# Configuration
|
|
8
|
+
PROCESSED_DIR="/MASTERFOLDER/Projects/fss-link/fss-live-testing/session-logs/processed"
|
|
9
|
+
COLLECTION_NAME="fss-link-sessions"
|
|
10
|
+
|
|
11
|
+
# Colors
|
|
12
|
+
RED='\033[0;31m'
|
|
13
|
+
GREEN='\033[0;32m'
|
|
14
|
+
YELLOW='\033[1;33m'
|
|
15
|
+
BLUE='\033[0;34m'
|
|
16
|
+
NC='\033[0m'
|
|
17
|
+
|
|
18
|
+
usage() {
|
|
19
|
+
cat << EOF
|
|
20
|
+
Usage: $0 [OPTIONS]
|
|
21
|
+
|
|
22
|
+
Index FSS Link session logs with RAG for semantic searching.
|
|
23
|
+
|
|
24
|
+
OPTIONS:
|
|
25
|
+
-r, --reindex Recreate index from scratch
|
|
26
|
+
-u, --update Add new sessions to existing index
|
|
27
|
+
-s, --status Show index status
|
|
28
|
+
-h, --help Show this help message
|
|
29
|
+
|
|
30
|
+
EXAMPLES:
|
|
31
|
+
$0 --reindex # Create fresh index of all sessions
|
|
32
|
+
$0 --update # Add new sessions to index
|
|
33
|
+
$0 --status # Check index status
|
|
34
|
+
|
|
35
|
+
After indexing, search with:
|
|
36
|
+
rag ${COLLECTION_NAME} "your query"
|
|
37
|
+
rag-all "your query" # Search all collections
|
|
38
|
+
|
|
39
|
+
EOF
|
|
40
|
+
exit 1
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
check_rag() {
|
|
44
|
+
if ! command -v rag-index &> /dev/null; then
|
|
45
|
+
echo -e "${RED}Error: rag-index command not found${NC}"
|
|
46
|
+
echo "FSS-RAG system must be installed and accessible"
|
|
47
|
+
exit 1
|
|
48
|
+
fi
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
show_status() {
|
|
52
|
+
echo -e "${BLUE}=== FSS Link Sessions Index Status ===${NC}\n"
|
|
53
|
+
|
|
54
|
+
# Check if collection exists
|
|
55
|
+
if rag-index list | grep -q "${COLLECTION_NAME}"; then
|
|
56
|
+
echo -e "${GREEN}✓${NC} Collection '${COLLECTION_NAME}' exists"
|
|
57
|
+
|
|
58
|
+
# Get collection details
|
|
59
|
+
rag-index status "${COLLECTION_NAME}" 2>/dev/null || echo " (Status unavailable)"
|
|
60
|
+
else
|
|
61
|
+
echo -e "${YELLOW}○${NC} Collection '${COLLECTION_NAME}' not yet created"
|
|
62
|
+
echo ""
|
|
63
|
+
echo "Run: $0 --reindex to create index"
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
echo ""
|
|
67
|
+
|
|
68
|
+
# Count processed sessions
|
|
69
|
+
if [[ -d "${PROCESSED_DIR}" ]]; then
|
|
70
|
+
session_count=$(find "${PROCESSED_DIR}" -name "*.md" -type f | wc -l)
|
|
71
|
+
echo "Processed sessions available: ${session_count}"
|
|
72
|
+
else
|
|
73
|
+
echo -e "${RED}No processed sessions directory found${NC}"
|
|
74
|
+
fi
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
reindex_all() {
|
|
78
|
+
echo -e "${BLUE}=== Reindexing FSS Link Sessions ===${NC}\n"
|
|
79
|
+
|
|
80
|
+
if [[ ! -d "${PROCESSED_DIR}" ]]; then
|
|
81
|
+
echo -e "${RED}Error: Processed sessions directory not found: ${PROCESSED_DIR}${NC}"
|
|
82
|
+
exit 1
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
# Count sessions
|
|
86
|
+
session_count=$(find "${PROCESSED_DIR}" -name "*.md" -type f | wc -l)
|
|
87
|
+
|
|
88
|
+
if [[ ${session_count} -eq 0 ]]; then
|
|
89
|
+
echo -e "${YELLOW}No processed sessions found to index${NC}"
|
|
90
|
+
echo "Run extract-session-logs.sh first to process session logs"
|
|
91
|
+
exit 1
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
echo "Found ${session_count} processed sessions"
|
|
95
|
+
echo ""
|
|
96
|
+
|
|
97
|
+
# Check if collection exists
|
|
98
|
+
if rag-index list | grep -q "${COLLECTION_NAME}"; then
|
|
99
|
+
echo -e "${YELLOW}Warning: Collection '${COLLECTION_NAME}' already exists${NC}"
|
|
100
|
+
echo -n "Delete and recreate? (y/N): "
|
|
101
|
+
read -r confirm
|
|
102
|
+
if [[ ! "${confirm}" =~ ^[Yy]$ ]]; then
|
|
103
|
+
echo "Cancelled"
|
|
104
|
+
exit 0
|
|
105
|
+
fi
|
|
106
|
+
echo ""
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
# Create index
|
|
110
|
+
echo -e "${BLUE}Creating RAG index...${NC}"
|
|
111
|
+
echo ""
|
|
112
|
+
|
|
113
|
+
cd "${PROCESSED_DIR}" || exit 1
|
|
114
|
+
|
|
115
|
+
# Run rag-index with confirmation flag for non-interactive use
|
|
116
|
+
if rag-index create . --confirm 2>&1; then
|
|
117
|
+
echo ""
|
|
118
|
+
echo -e "${GREEN}✓${NC} Successfully indexed ${session_count} sessions"
|
|
119
|
+
echo ""
|
|
120
|
+
echo -e "${YELLOW}Next steps:${NC}"
|
|
121
|
+
echo " 1. Search sessions: rag ${COLLECTION_NAME} 'your query'"
|
|
122
|
+
echo " 2. Check status: $0 --status"
|
|
123
|
+
echo " 3. Analyze: analyze-session-logs.sh stats"
|
|
124
|
+
else
|
|
125
|
+
echo ""
|
|
126
|
+
echo -e "${RED}✗${NC} Indexing failed"
|
|
127
|
+
exit 1
|
|
128
|
+
fi
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
update_index() {
|
|
132
|
+
echo -e "${BLUE}=== Updating FSS Link Sessions Index ===${NC}\n"
|
|
133
|
+
|
|
134
|
+
# Check if collection exists
|
|
135
|
+
if ! rag-index list | grep -q "${COLLECTION_NAME}"; then
|
|
136
|
+
echo -e "${YELLOW}Collection '${COLLECTION_NAME}' doesn't exist yet${NC}"
|
|
137
|
+
echo "Run: $0 --reindex to create initial index"
|
|
138
|
+
exit 1
|
|
139
|
+
fi
|
|
140
|
+
|
|
141
|
+
echo "This feature requires manual re-indexing currently"
|
|
142
|
+
echo "Run: $0 --reindex to recreate the entire index"
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
# Main execution
|
|
146
|
+
main() {
|
|
147
|
+
check_rag
|
|
148
|
+
|
|
149
|
+
if [[ $# -eq 0 ]]; then
|
|
150
|
+
usage
|
|
151
|
+
fi
|
|
152
|
+
|
|
153
|
+
case "$1" in
|
|
154
|
+
-r|--reindex)
|
|
155
|
+
reindex_all
|
|
156
|
+
;;
|
|
157
|
+
-u|--update)
|
|
158
|
+
update_index
|
|
159
|
+
;;
|
|
160
|
+
-s|--status)
|
|
161
|
+
show_status
|
|
162
|
+
;;
|
|
163
|
+
-h|--help)
|
|
164
|
+
usage
|
|
165
|
+
;;
|
|
166
|
+
*)
|
|
167
|
+
echo -e "${RED}Unknown option: $1${NC}"
|
|
168
|
+
usage
|
|
169
|
+
;;
|
|
170
|
+
esac
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
main "$@"
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# FSS Link Linux Installation Script
|
|
4
|
+
# Handles Ubuntu, Debian, CentOS, Fedora, and other Linux distributions
|
|
5
|
+
|
|
6
|
+
set -e # Exit on any error
|
|
7
|
+
|
|
8
|
+
# Colors for output
|
|
9
|
+
RED='\033[0;31m'
|
|
10
|
+
GREEN='\033[0;32m'
|
|
11
|
+
YELLOW='\033[1;33m'
|
|
12
|
+
BLUE='\033[0;34m'
|
|
13
|
+
NC='\033[0m' # No Color
|
|
14
|
+
|
|
15
|
+
# Logging functions
|
|
16
|
+
log_info() {
|
|
17
|
+
echo -e "${BLUE}[INFO]${NC} $1"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
log_success() {
|
|
21
|
+
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
log_warning() {
|
|
25
|
+
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
log_error() {
|
|
29
|
+
echo -e "${RED}[ERROR]${NC} $1"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# Check if running as root
|
|
33
|
+
check_root() {
|
|
34
|
+
if [[ $EUID -eq 0 ]]; then
|
|
35
|
+
log_warning "Running as root. FSS Link will be installed globally."
|
|
36
|
+
fi
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
# Detect Linux distribution
|
|
40
|
+
detect_distro() {
|
|
41
|
+
if [ -f /etc/os-release ]; then
|
|
42
|
+
. /etc/os-release
|
|
43
|
+
DISTRO=$ID
|
|
44
|
+
VERSION=$VERSION_ID
|
|
45
|
+
else
|
|
46
|
+
log_error "Cannot detect Linux distribution"
|
|
47
|
+
exit 1
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
log_info "Detected: $PRETTY_NAME"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
# Check Node.js version
|
|
54
|
+
check_nodejs() {
|
|
55
|
+
log_info "Checking Node.js installation..."
|
|
56
|
+
|
|
57
|
+
if command -v node &> /dev/null; then
|
|
58
|
+
NODE_VERSION=$(node --version | sed 's/v//')
|
|
59
|
+
MAJOR_VERSION=$(echo $NODE_VERSION | cut -d. -f1)
|
|
60
|
+
|
|
61
|
+
if [ "$MAJOR_VERSION" -ge "20" ]; then
|
|
62
|
+
log_success "Node.js $NODE_VERSION detected (>= 20.0.0 required)"
|
|
63
|
+
return 0
|
|
64
|
+
else
|
|
65
|
+
log_warning "Node.js $NODE_VERSION detected, but 20.0.0+ required"
|
|
66
|
+
return 1
|
|
67
|
+
fi
|
|
68
|
+
else
|
|
69
|
+
log_warning "Node.js not found"
|
|
70
|
+
return 1
|
|
71
|
+
fi
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
# Install Node.js based on distribution
|
|
75
|
+
install_nodejs() {
|
|
76
|
+
log_info "Installing Node.js 20..."
|
|
77
|
+
|
|
78
|
+
case $DISTRO in
|
|
79
|
+
ubuntu|debian)
|
|
80
|
+
# NodeSource repository method
|
|
81
|
+
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
|
82
|
+
sudo apt-get install -y nodejs
|
|
83
|
+
;;
|
|
84
|
+
centos|rhel|fedora)
|
|
85
|
+
# NodeSource repository method
|
|
86
|
+
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
|
|
87
|
+
sudo yum install -y nodejs npm
|
|
88
|
+
;;
|
|
89
|
+
arch)
|
|
90
|
+
sudo pacman -S nodejs npm
|
|
91
|
+
;;
|
|
92
|
+
opensuse*)
|
|
93
|
+
sudo zypper install nodejs20 npm20
|
|
94
|
+
;;
|
|
95
|
+
*)
|
|
96
|
+
log_error "Unsupported distribution for automatic Node.js installation: $DISTRO"
|
|
97
|
+
log_info "Please install Node.js 20+ manually from https://nodejs.org/"
|
|
98
|
+
exit 1
|
|
99
|
+
;;
|
|
100
|
+
esac
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
# Install system dependencies
|
|
104
|
+
install_dependencies() {
|
|
105
|
+
log_info "Installing system dependencies..."
|
|
106
|
+
|
|
107
|
+
case $DISTRO in
|
|
108
|
+
ubuntu|debian)
|
|
109
|
+
sudo apt-get update
|
|
110
|
+
sudo apt-get install -y build-essential python3 python3-pip libsqlite3-dev curl git
|
|
111
|
+
;;
|
|
112
|
+
centos|rhel)
|
|
113
|
+
if command -v dnf &> /dev/null; then
|
|
114
|
+
sudo dnf groupinstall -y "Development Tools"
|
|
115
|
+
sudo dnf install -y python3 python3-pip sqlite-devel curl git
|
|
116
|
+
else
|
|
117
|
+
sudo yum groupinstall -y "Development Tools"
|
|
118
|
+
sudo yum install -y python3 python3-pip sqlite-devel curl git
|
|
119
|
+
fi
|
|
120
|
+
;;
|
|
121
|
+
fedora)
|
|
122
|
+
sudo dnf groupinstall -y "Development Tools"
|
|
123
|
+
sudo dnf install -y python3 python3-pip sqlite-devel curl git
|
|
124
|
+
;;
|
|
125
|
+
arch)
|
|
126
|
+
sudo pacman -S base-devel python python-pip sqlite curl git
|
|
127
|
+
;;
|
|
128
|
+
opensuse*)
|
|
129
|
+
sudo zypper install -y -t pattern devel_basis
|
|
130
|
+
sudo zypper install -y python3 python3-pip sqlite3-devel curl git
|
|
131
|
+
;;
|
|
132
|
+
*)
|
|
133
|
+
log_warning "Unknown distribution. Please ensure you have:"
|
|
134
|
+
log_warning "- Build tools (gcc, make)"
|
|
135
|
+
log_warning "- Python 3"
|
|
136
|
+
log_warning "- SQLite development headers"
|
|
137
|
+
log_warning "- curl and git"
|
|
138
|
+
;;
|
|
139
|
+
esac
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
# Install FSS Link
|
|
143
|
+
install_fss_link() {
|
|
144
|
+
log_info "Installing FSS Link..."
|
|
145
|
+
|
|
146
|
+
# Try global installation first
|
|
147
|
+
if npm install -g fss-link; then
|
|
148
|
+
log_success "FSS Link installed globally"
|
|
149
|
+
return 0
|
|
150
|
+
else
|
|
151
|
+
log_warning "Global installation failed, trying local installation"
|
|
152
|
+
|
|
153
|
+
# Create local npm directory
|
|
154
|
+
mkdir -p ~/.npm-global
|
|
155
|
+
npm config set prefix ~/.npm-global
|
|
156
|
+
|
|
157
|
+
# Add to PATH if not already there
|
|
158
|
+
if [[ ":$PATH:" != *":$HOME/.npm-global/bin:"* ]]; then
|
|
159
|
+
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
|
|
160
|
+
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc 2>/dev/null || true
|
|
161
|
+
export PATH=~/.npm-global/bin:$PATH
|
|
162
|
+
fi
|
|
163
|
+
|
|
164
|
+
# Install locally
|
|
165
|
+
npm install -g fss-link
|
|
166
|
+
log_success "FSS Link installed locally"
|
|
167
|
+
fi
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
# Verify installation
|
|
171
|
+
verify_installation() {
|
|
172
|
+
log_info "Verifying FSS Link installation..."
|
|
173
|
+
|
|
174
|
+
# Source shell config to get new PATH
|
|
175
|
+
export PATH=~/.npm-global/bin:$PATH
|
|
176
|
+
|
|
177
|
+
if command -v fss-link &> /dev/null; then
|
|
178
|
+
VERSION=$(fss-link --version 2>/dev/null || echo "unknown")
|
|
179
|
+
log_success "FSS Link installed successfully: $VERSION"
|
|
180
|
+
|
|
181
|
+
# Run basic tests
|
|
182
|
+
log_info "Running functionality tests..."
|
|
183
|
+
if fss-link --help > /dev/null 2>&1; then
|
|
184
|
+
log_success "✅ Help command working"
|
|
185
|
+
else
|
|
186
|
+
log_warning "⚠️ Help command failed"
|
|
187
|
+
fi
|
|
188
|
+
|
|
189
|
+
if fss-link test-parsers > /dev/null 2>&1; then
|
|
190
|
+
log_success "✅ Document parsers working"
|
|
191
|
+
else
|
|
192
|
+
log_warning "⚠️ Document parsers test failed"
|
|
193
|
+
fi
|
|
194
|
+
|
|
195
|
+
return 0
|
|
196
|
+
else
|
|
197
|
+
log_error "FSS Link installation verification failed"
|
|
198
|
+
log_info "Try running: source ~/.bashrc && fss-link --version"
|
|
199
|
+
return 1
|
|
200
|
+
fi
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
# Print usage information
|
|
204
|
+
print_usage() {
|
|
205
|
+
cat << EOF
|
|
206
|
+
|
|
207
|
+
🚀 FSS Link Installation Complete!
|
|
208
|
+
|
|
209
|
+
📋 Quick Start:
|
|
210
|
+
fss-link --version # Check version
|
|
211
|
+
fss-link --help # Show help
|
|
212
|
+
fss-link test-parsers # Test document processing
|
|
213
|
+
|
|
214
|
+
🔧 Configuration:
|
|
215
|
+
fss-link init # Initialize configuration
|
|
216
|
+
fss-link models setup # Set up model profiles
|
|
217
|
+
|
|
218
|
+
📚 Documentation:
|
|
219
|
+
https://github.com/FSSCoding/fss-link/blob/main/INSTALLATION.md
|
|
220
|
+
https://github.com/FSSCoding/fss-link/blob/main/fss-docs/README.md
|
|
221
|
+
|
|
222
|
+
🎯 Example Usage:
|
|
223
|
+
fss-link -p "analyze this project"
|
|
224
|
+
fss-link --tools excel-parser -p "parse spreadsheet.xlsx"
|
|
225
|
+
fss-link --tools web-scraper -p "scrape https://example.com"
|
|
226
|
+
|
|
227
|
+
EOF
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
# Main installation flow
|
|
231
|
+
main() {
|
|
232
|
+
echo "🚀 FSS Link Linux Installation Script"
|
|
233
|
+
echo "======================================"
|
|
234
|
+
|
|
235
|
+
check_root
|
|
236
|
+
detect_distro
|
|
237
|
+
|
|
238
|
+
# Check/install Node.js
|
|
239
|
+
if ! check_nodejs; then
|
|
240
|
+
log_info "Installing Node.js..."
|
|
241
|
+
install_dependencies
|
|
242
|
+
install_nodejs
|
|
243
|
+
|
|
244
|
+
if ! check_nodejs; then
|
|
245
|
+
log_error "Node.js installation failed"
|
|
246
|
+
exit 1
|
|
247
|
+
fi
|
|
248
|
+
fi
|
|
249
|
+
|
|
250
|
+
# Install system dependencies
|
|
251
|
+
install_dependencies
|
|
252
|
+
|
|
253
|
+
# Install FSS Link
|
|
254
|
+
install_fss_link
|
|
255
|
+
|
|
256
|
+
# Verify installation
|
|
257
|
+
if verify_installation; then
|
|
258
|
+
print_usage
|
|
259
|
+
log_success "🎉 FSS Link installation successful!"
|
|
260
|
+
else
|
|
261
|
+
log_error "Installation verification failed"
|
|
262
|
+
log_info "Please check the installation manually or report issues at:"
|
|
263
|
+
log_info "https://github.com/FSSCoding/fss-link/issues"
|
|
264
|
+
exit 1
|
|
265
|
+
fi
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
# Handle script arguments
|
|
269
|
+
case "${1:-}" in
|
|
270
|
+
--help|-h)
|
|
271
|
+
echo "FSS Link Linux Installation Script"
|
|
272
|
+
echo ""
|
|
273
|
+
echo "Usage: $0 [options]"
|
|
274
|
+
echo ""
|
|
275
|
+
echo "Options:"
|
|
276
|
+
echo " --help, -h Show this help message"
|
|
277
|
+
echo " --version, -v Show script version"
|
|
278
|
+
echo ""
|
|
279
|
+
echo "This script will:"
|
|
280
|
+
echo "1. Detect your Linux distribution"
|
|
281
|
+
echo "2. Install Node.js 20+ if needed"
|
|
282
|
+
echo "3. Install build dependencies"
|
|
283
|
+
echo "4. Install FSS Link from npm"
|
|
284
|
+
echo "5. Verify the installation"
|
|
285
|
+
exit 0
|
|
286
|
+
;;
|
|
287
|
+
--version|-v)
|
|
288
|
+
echo "FSS Link Linux Installation Script v1.0.0"
|
|
289
|
+
exit 0
|
|
290
|
+
;;
|
|
291
|
+
*)
|
|
292
|
+
main "$@"
|
|
293
|
+
;;
|
|
294
|
+
esac
|