/ programs / aarch64 / yazi
yazi
 1  #!/bin/sh
 2  
 3  # AM INSTALL SCRIPT VERSION 3. 
 4  
 5  set -u
 6  APP=yazi
 7  SITE="sxyazi/yazi"
 8  
 9  # CREATE DIRECTORIES AND ADD REMOVER
10  [ -n "$APP" ] && mkdir -p "/opt/$APP/tmp" && cd "/opt/$APP/tmp" || exit 1
11  printf "#!/bin/sh\nset -e\nrm -f /usr/local/bin/$APP\nrm -R -f /opt/$APP" > "/opt/$APP/remove"
12  printf '\n%s' "rm -f /usr/local/bin/ya" >> "/opt/$APP/remove"
13  chmod a+x "/opt/$APP/remove"
14  
15  # DOWNLOAD AND PREPARE THE APP
16  # $version is also used for updates
17  
18  
19  version=$(curl -Ls https://api.github.com/repos/"$SITE"/releases | sed 's/[()",{}]/ /g; s/ /\n/g' | grep -o 'https.*aarch64.*linux.*gnu.*zip$' | head -1)
20  wget "$version" && echo "$version" > "/opt/$APP/version" || exit 1
21  unzip ./*zip || exit 1
22  cd ..
23  mv --backup=t ./tmp/*/* ./ && rm -R -f ./tmp || exit 1
24  chmod a+x "/opt/$APP/$APP" "/opt/$APP/ya" || exit 1
25  
26  # LINK TO PATH
27  ln -s "/opt/$APP/$APP" "/usr/local/bin/$APP" && ln -s "/opt/$APP/ya" "/usr/local/bin/ya"
28  
29  # SCRIPT TO UPDATE THE PROGRAM
30  cat >> "/opt/$APP/AM-updater" << 'EOF'
31  #!/bin/sh
32  set -u
33  APP=yazi
34  SITE="sxyazi/yazi"
35  version0=$(cat /opt/$APP/version)
36  version=$(curl -Ls https://api.github.com/repos/"$SITE"/releases | sed 's/[()",{}]/ /g; s/ /\n/g' | grep -o 'https.*aarch64.*linux.*gnu.*zip$' | head -1)
37  [ -n "$version" ] || { echo "Error getting link"; exit 1; }
38  if [ "$version" != "$version0" ]; then
39  	notify-send "A new version of $APP is available, please wait"
40  	mkdir "/opt/$APP/tmp" && cd "/opt/$APP/tmp" || exit 1
41  	wget "$version" || exit 1
42  	unzip ./*zip || exit 1
43  	cd ..
44  	mv --backup=t ./tmp/*/* ./ && rm -R -f ./tmp || exit 1
45  	echo "$version" > ./version
46  	rm -R -f ./tmp ./*~
47  	chmod a+x "/opt/$APP/$APP" "/opt/$APP/ya" || exit 1
48  	notify-send "$APP is updated!"
49  	exit 0
50  fi
51  echo "Update not needed!"
52  EOF
53  chmod a+x "/opt/$APP/AM-updater" || exit 1