Skip to content

Commit 8d0f830

Browse files
committed
installer improvements
1 parent 58dd4f6 commit 8d0f830

File tree

1 file changed

+20
-38
lines changed

1 file changed

+20
-38
lines changed

Diff for: install.sh

+20-38
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ froster_data_backup_dir=${froster_all_data_backups}/froster_${date_YYYYMMDDHHMMS
1919
froster_config_dir=${XDG_CONFIG_HOME}/froster
2020
froster_all_config_backups=${XDG_CONFIG_HOME}/froster_backups
2121
froster_config_backup_dir=${froster_all_config_backups}/froster_${date_YYYYMMDDHHMMSS}.bak
22+
version_regex='^[0-9]+\.[0-9]+\.[0-9]+$'
2223

2324
#####################
2425
### ERROR HANDLER ###
@@ -76,11 +77,16 @@ spinner() {
7677
# Check all needed apt dependencies to install froster
7778
check_dependencies() {
7879

80+
PIPX_BIN_DIR="${PIPX_BIN_DIR:-$HOME/.local/bin}"
81+
7982
# Check if ~/.local/bin is in PATH
8083
local_bin_in_path=false
8184
if [[ ":$PATH:" == *":$HOME/.local/bin:"* ]]; then
8285
local_bin_in_path=true
86+
else
87+
echo -e "\nAdding $PIPX_BIN_DIR to PATH for this installation session"
8388
fi
89+
export PATH="$PATH:$PIPX_BIN_DIR"
8490

8591
# Check if curl is installed
8692
if [[ -z $(command -v curl) ]]; then
@@ -241,7 +247,6 @@ install_pipx() {
241247

242248
# Check if pipx is installed
243249
pipx_version=$(python3 -m pipx --version 2>/dev/null)
244-
version_regex='^[0-9]+\.[0-9]+\.[0-9]+$'
245250

246251
if [[ $pipx_version =~ $version_regex ]]; then
247252

@@ -257,38 +262,21 @@ install_pipx() {
257262
echo " Installing pipx via pip"
258263
python3 -m pip install --upgrade pipx >/dev/null 2>&1
259264

260-
# Ensure path for pipx
261-
echo " Ensuring path for pipx"
262-
if [[ $(command -v pipx) ]]; then
263-
pipx ensurepath >/dev/null 2>&1
265+
# ensure path for pipx
266+
pipx_version=$(python3 -m pipx --version 2>/dev/null)
267+
if [[ $pipx_version =~ $version_regex ]]; then
268+
python3 -m pipx ensurepath >/dev/null 2>&1
269+
echo "...pipx installed"
264270
else
265-
$HOME/.local/bin/pipx ensurepath >/dev/null 2>&1
271+
echo "...pipx ensurepath failed"
266272
fi
267-
268-
echo "...pipx installed"
269-
<<<<<<< HEAD
270-
271-
fi
272-
273-
=======
274-
else
275-
echo "...pipx already installed"
276-
277-
echo -e "\nUpgrading pipx..."
278-
pipx upgrade pipx >/dev/null 2>&1 &
279-
spinner $!
280-
echo "...pipx upgraded"
281-
282-
echo -e "\nEnsuring path for pipx..."
283-
pipx ensurepath >/dev/null 2>&1
284-
echo "...path ensured"
273+
285274
fi
286275

287276
# Check if PIPX_BIN_DIR is set and not empty, otherwise default to ~/.local/bin
288277
PIPX_BIN_DIR="${PIPX_BIN_DIR:-$HOME/.local/bin}"
289278
echo -e "\nAdding $PIPX_BIN_DIR to PATH for this installation session"
290279
export PATH="$PATH:$PIPX_BIN_DIR"
291-
>>>>>>> c29f433e57877f8eb12eb3f002fbe6bace698ae3
292280
}
293281

294282
install_froster() {
@@ -302,28 +290,26 @@ install_froster() {
302290
echo "...old froster files removed"
303291

304292
if [ "$LOCAL_INSTALL" = "true" ]; then
305-
<<<<<<< HEAD
293+
306294
echo " Installing from the current directory"
307-
=======
308295
echo -e "\nInstalling Froster from the current directory in --editable mode..."
309-
>>>>>>> c29f433e57877f8eb12eb3f002fbe6bace698ae3
310296
python3 -m pip install -e . >/dev/null 2>&1 &
311297
spinner $!
312298
echo "...Froster installed"
299+
313300
else
314-
<<<<<<< HEAD
301+
315302
echo " Installing from PyPi package repository"
316303
python3 -m pipx install froster >/dev/null 2>&1 &
317-
=======
304+
318305
if pipx list | grep froster >/dev/null 2>&1; then
319306
echo -e "\nUninstalling old Froster..."
320307
pipx uninstall froster >/dev/null 2>&1
321308
echo "...old Froster uninstalled"
322309
fi
323310

324311
echo -e "\nInstalling Froster from PyPi package repository"
325-
pipx install froster >/dev/null 2>&1 &
326-
>>>>>>> c29f433e57877f8eb12eb3f002fbe6bace698ae3
312+
python3 -m pipx install froster >/dev/null 2>&1 &
327313
spinner $!
328314
echo "...Froster installed"
329315
fi
@@ -489,16 +475,12 @@ echo -e "\n\nSUCCESS!"
489475
echo -e "\nFroster version: $version"
490476
echo -e "Installation path: $(which froster)"
491477

492-
<<<<<<< HEAD
478+
493479
# Refresh Terminal
494480
if [[ "$local_bin_in_path" = false ]]; then
495481
echo
496482
echo "You will need to open a new terminal or refresh your current terminal session by running command:"
497483
echo " source ~/.bashrc"
498484
echo
499485
fi
500-
=======
501-
# Print post-installation instructions
502-
echo -e "\n\nYou will need to open a new terminal or refresh your current terminal session by running command:"
503-
echo -e " source ~/.bashrc\n"
504-
>>>>>>> c29f433e57877f8eb12eb3f002fbe6bace698ae3
486+

0 commit comments

Comments
 (0)