Merge pull request #1 from Botspot/master

Okay good I did this right
pull/392/head
slashtechno 3 years ago committed by GitHub
commit 8c0f1dc2ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,7 +1,10 @@
**NOTE**: This changelog covers the major events in pi-apps like new apps being added. If every action since day one was mentioned, "I suppose that even the world itself could not contain the books that should be written." ;)
Last update: Feb 4, 2021 by [RaspberryPiNews](https://www.youtube.com/channel/UCmp6JswV90SV5agNFGQuWkw)
- **3/20/2020** Initial idea of an app store. https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=268455
- **9/20/2020** Development begins.
- **9/22/2020** Initial upload to github, including these apps: Arduino, BalenaEtcher, Chromium Media Edition, CommanderPi, Cool Retro Term, Cura, FreeCAD, Pi-Power-Tools, Raspi2png, and Windows 10 Theme
- **9/22/2020** Initial upload to github, including these apps: Arduino, BalenaEtcher, Chromium Media Edition, CommanderPi, Cool Retro Term, Cura, FreeCAD, Pi-Power-Tools, Raspi2png, and Windows 10 Theme.
- **10/1/2020** Many bugs fixed, createapp added, and added TBOPlayer app.
- **10/2/2020** More bug fixes & improvements; added Discord, Minecraft Java, and piKiss apps.
- **10/3/2020** Added some more icons, added conky app.
@ -47,3 +50,25 @@ At this point, grayduck has said Pi-Apps will be added to TwisterOS.
- **12/24/2020** Added Doom 3 app.
- **12/27/2020** Boxy SVG app uses [Boxy-SVG-RPi](https://github.com/Botspot/Boxy-SVG-RPi) and Box86 app uses [box86-updater](https://github.com/Botspot/box86-updater)
- **12/28/2020** Added Eagle and YouTubuddy apps
- **12/29/2020** Changed Doom 3 app to not wget script and added the "a guy" story in the README :laughing:
- **1/2/2021** Removed Cordless app due to users being banned by Discord and support being dropped. Added Whatsapp and Vivaldi browser
- **1/3/2021** Added Lightpad, TLDR, and Mission Planner apps. Also improved Zoom.
- **1/5/2021** Added app request templates
- **1/8/2021** Removed Chromium Media Edition app and started work on categories
- **1/9/2021** Added Ulauncher app
- **1/10/2021** Added categories!
- **1/11/2021** Added AndroidBuddy app amd fixed preload error
- **1/12/2021** Improved xlunch compilation
- **1/13/2021** Added Snap store, jGRASP IDE
Minecraft Pi testing phase begins
- **1/16/2021** Added Angry IP scanner app
- **1/20/2021** Added AnyDesk app
- **1/21/2021** Updated BalenaEtcher to v1.5.113
- **1/26/2021** Added Teamviewer Host app
- **1/27/2021** Added OBS Studio app
- **1/28/2021** Added VSCodium and VeraCrypt apps
Added pi-apps terminal command (you can now run pi-apps with `pi-apps`).
- **1/30/2021** Minecraft Pi (Modded) official launch
- **1/31/2021** Added Wine x86 app
- **2/1/2021** Added Remarkable app and fixed Minecraft Pi (Modded) install
- **2/3/2021** Updated Minecraft Pi (Modded) to v0.1.8 and added Node.js app

@ -8,18 +8,26 @@ Pi-Apps does exactly this - distributing over 50 useful app install scripts that
**[ETA Prime](https://www.youtube.com/watch?v=oqNWJ52DLes)** (the most famous RPi YouTuber) says:
> "It's an **awesome** Raspberry Pi app store and it **works really well** and there's lots of great stuff in here and it's super easy to install.
> "It's an **awesome** Raspberry Pi app store and it works really well and there's **lots of great stuff** in here and it's super easy to install.
> I want to give the devs of Pi-Apps a big shout-out."
## To install Pi-Apps
Make sure `git` is installed with `sudo apt install git`, then run:
```
wget -qO- https://raw.githubusercontent.com/Botspot/pi-apps/master/install | bash
```
<details>
<summary>Manual installation</summary>
```
git clone https://github.com/Botspot/pi-apps
~/pi-apps/install
```
</details>
The install script ensures YAD is installed, creates two menu buttons, and an autostarted updater. Nothing is modified outside your home directory.
## To run Pi-Apps
Menu -> Accessories -> Pi Apps, or type `~/pi-apps/gui`.
Menu -> Accessories -> Pi Apps, or run `pi-apps` in a terminal. Run Pi-Apps from its directory with `~/pi-apps/gui`.
### Useful links
- [![Pi-Apps Discord server](https://img.shields.io/discord/770629697909424159.svg?color=7289da&label=Pi-Apps%20Discord%20server&logo=discord)](https://discord.gg/RXSTvaUvuu)
- [Send Botspot a donation](https://paypal.me/josephmarchand)

@ -31,8 +31,7 @@ echo "[Desktop Entry]
Name=AndroidBuddy
Comment=GUI for Android device recovery and maintainence
Icon=$(dirname "$0")/icon-64.png
Path=$HOME/droidbuddy
Exec=python3 $HOME/droidbuddy/main.py
Exec=bash -c 'cd $HOME/droidbuddy ; python3 main.py'
Type=Application
Encoding=UTF-8
Terminal=false

@ -7,7 +7,7 @@ function error {
exit 1
}
wget -O ~/Cura.AppImage https://github.com/smartavionics/Cura/releases/download/20210130/Cura-mb-master-armhf-20210130.AppImage || error "Failed to download!"
wget -O ~/Cura.AppImage https://github.com/smartavionics/Cura/releases/download/20210213/Cura-mb-master-armhf-20210213.AppImage || error "Failed to download!"
chmod +x ~/Cura.AppImage

@ -7,7 +7,7 @@ function error {
exit 1
}
wget -O ~/Cura.AppImage https://github.com/smartavionics/Cura/releases/download/20210130/Cura-mb-master-aarch64-20210130.AppImage || error "Failed to download!"
wget -O ~/Cura.AppImage https://github.com/smartavionics/Cura/releases/download/20210213/Cura-mb-master-aarch64-20210213.AppImage || error "Failed to download!"
chmod +x ~/Cura.AppImage

@ -0,0 +1 @@
Installation Script And Added To Pi Apps By RPICoder

@ -0,0 +1,5 @@
Privacy-friendly YouTube player.
Use YouTube without advertisements and prevent Google from tracking you with their cookies and JavaScript.
FreeTube has an interface similar to YouTube, but is slower and more innefficient than YouTubuddy. Try both and see which one you prefer!
Disabling the compositor improves playback performance.

Binary file not shown.

After

Width:  |  Height:  |  Size: 714 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,18 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
#Downloading Deb File For FreeTube
rm -f ~/freetube.deb
wget https://archive.org/download/freetube_0.11.2_armv7l/freetube_0.11.2_armv7l.deb -O ~/freetube.deb || error "Failed to download freetube.deb!"
#Installing FreeTube
sudo apt install -y --fix-missing ~/freetube.deb || error "APT failed to install freetube.deb!"
#Removing Deb File
rm -f ~/freetube.deb

@ -0,0 +1,18 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
#Downloading Deb File For FreeTube
rm -f ~/freetube.deb
wget https://github.com/FreeTubeApp/FreeTube/releases/download/v0.11.2-beta/freetube_0.11.2_arm64.deb -O ~/freetube.deb || error "Failed to download freetube.deb!"
#Installing FreeTube
sudo apt install -y --fix-missing ~/freetube.deb || error "APT failed to install freetube.deb!"
#Removing Deb File
rm -f ~/freetube.deb

@ -0,0 +1,13 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
#Uninstalling FreeTube
sudo apt -y purge freetube || error "Failed to uninstall lightpad"
sudo apt -y autoremove

@ -0,0 +1 @@
https://freetubeapp.io/

@ -1,4 +1,4 @@
Game mods made by TheBrokenRail#5376 on Discord
Launcher made by Alvarito050506#8207 on Discord
Ported to pi-apps by Botspot and RPiNews#5599 on Discord
Ported to pi-apps by TheBrokenRail#5376 on Discord with a little help from Botspot.

@ -1,3 +1,5 @@
A modded version of Minecraft: Pi Edition with things like survival mode, multiplayer support, and more!
Launch after install by typing `minecraft-pi` to start the modded version directly or open Start menu > Games > MCPIL to open the launcher with username and multiplayer support.
To open the launcher: Menu > Games > MCPIL. Use the launcher to set up mods and multiplayer.
NOTE: Make sure "GPU Driver" is set to Full/Fake in "raspi-config".

@ -4,7 +4,8 @@
## Config
##
MCPIL_VERSION='0.1.7'
MCPI_REBORN_VERSION='build_28'
MCPIL_VERSION='0.1.8'
set -e
@ -31,26 +32,21 @@ if [[ "$(lsb_release -cs)" != "buster" && "$(lsb_release -cs)" != "bullseye" &&
fi
# Remove Old Minecraft Pi
sudo apt-get remove -y minecraft-pi minecraft-pi-native mcpil mcpil-r minecraft-pi-reborn-native || :
sudo apt-get remove -y minecraft-pi >/dev/null || :
sudo apt-get remove -y minecraft-pi-native >/dev/null || :
sudo apt-get remove -y mcpil-r >/dev/null || :
# Debian Buster Support
if [[ "$(lsb_release -cs)" = "buster" ]]; then
# Uninstall Old Docker
sudo apt-get remove -y docker.io
# Install Docker
if [ ! command -v docker &>/dev/null ];then
curl -fsSL https://get.docker.com -o "${STORAGE}/get-docker.sh" || error 'Unable To Download Docker Install Script'
sudo sh "${STORAGE}/get-docker.sh" || error 'Unable To Install Docker'
rm "${STORAGE}/get-docker.sh"
fi
sudo apt-get remove -y docker.io >/dev/null
# Setup Backports Repo On Buster
if ! grep -q '^deb http://deb.debian.org/debian buster-backports main$' /etc/apt/sources.list; then
# Install Backports Key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
# Install Backports Repository
echo 'deb http://deb.debian.org/debian buster-backports main' | sudo tee -a /etc/apt/sources.list
# Sign backports repo
sudo apt update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' | while read key; do if ! [[ ${keys[*]} =~ "$key" ]]; then sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys "$key"; keys+=("$key"); fi; done
# Update APT Index
sudo apt-get update
# Install Updated libseccomp2
@ -58,15 +54,25 @@ if [[ "$(lsb_release -cs)" = "buster" ]]; then
fi
fi
# Install Docker
if command -v docker &>/dev/null ;then
echo "Docker is installed at $(command -v docker)"
else
echo "Docker is not installed. Running Docker install script..."
curl -fsSL https://get.docker.com -o "${STORAGE}/get-docker.sh" || error 'Unable To Download Docker Install Script'
sudo sh "${STORAGE}/get-docker.sh" || error 'Unable To Install Docker'
rm "${STORAGE}/get-docker.sh"
fi
# Prepare
rm -rf "${STORAGE}/mcpi-reborn"
mkdir "${STORAGE}/mcpi-reborn"
# Download DEBs
wget -O "${STORAGE}/mcpi-reborn/deb.zip" https://jenkins.thebrokenrail.com/job/minecraft-pi-reborn/job/master/lastSuccessfulBuild/artifact/out/deb/*zip*/deb.zip || error 'Unable To Download'
wget -O "${STORAGE}/mcpi-reborn/deb.zip" https://jenkins.thebrokenrail.com/job/minecraft-pi-reborn/job/master/lastSuccessfulBuild/artifact/out/deb/*zip*/deb.zip || error 'Unable To Download deb.zip! Check your internet connection and try again.'
# Unzip DEBs
unzip "${STORAGE}/mcpi-reborn/deb.zip" -d "${STORAGE}/mcpi-reborn" || error 'Unable to extract deb.zip!'
unzip "${STORAGE}/mcpi-reborn/deb.zip" -d "${STORAGE}/mcpi-reborn" || error 'Unable to extract deb.zip! Check your internet connection and try again.'
# Find DEB
MCPI_DOCKER_DEB="$(find "${STORAGE}/mcpi-reborn/deb" -name 'minecraft-pi-reborn-native*.deb')"
@ -97,4 +103,5 @@ install_deb "${STORAGE}/mcpil/mcpil.deb"
rm -rf "${STORAGE}/mcpil"
# Update Docker Permissions
sudo groupadd -f docker
sudo usermod -aG docker "$(id -un)"

@ -7,5 +7,5 @@ function error {
exit 1
}
sudo apt-get remove -y minecraft-pi-reborn-native mcpil-r
sudo apt-get remove -y minecraft-pi-reborn-native mcpil
sudo apt-get autoremove -y

@ -0,0 +1,2 @@
script by ilobilo
script improved by Itai-Nelken

@ -0,0 +1,2 @@
JavaScript code outside a web browser.
Node.js is used for all npm packages and is the foundation of Electron. As usual, this app will keep it updated.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

@ -0,0 +1,26 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
#Checking if using armv6
if [ ! -z "$(cat /proc/cpuinfo | grep ARMv6)" ];then
error "armv6 cpu not supported"
fi
if ! command -v curl >/dev/null ; then
echo -e "\033[0;31mcurl: command not found.\e[39m
You need to install curl first. If you are on a debian system, this command should install it:
\e[4msudo apt install curl\e[0m"
exit 1
fi
#Add NodeSource repo:
curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash - || error "Failed to add Nodesource repo!"
#Install NodeJS:
sudo apt install nodejs -y || error "Failed to install Node.JS"

@ -0,0 +1,18 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
#Uninstall NodeJS
sudo apt purge nodejs -y || error "Failed to purge Node.JS!"
sudo apt autoremove -y #who cares if this fails?
#remove /etc/apt/sources.list.d/nodesource.list
sudo rm /etc/apt/sources.list.d/nodesource.list || error "Failed to remove nodesource repo!"
#if your app installs any packages, keep this command here so those packages will be removed.
"${DIRECTORY}/purge-installed" "$(dirname "$0")" || exit 1

@ -0,0 +1 @@
https://nodesource.com/

@ -0,0 +1 @@
Added to Pi-Apps by Itai-Nelken.

@ -0,0 +1,10 @@
A fully featured Markdown editor for Linux.
Remarkable has many features including:
- Live Preview with Synchronized Scrolling
- Syntax Highlighting
- GitHub Flavored Markdown Support
- HTML and PDF Export
- Dialogs for adding images, links and tables
- Styles
- Custom CSS Support
- Keyboard Shortcuts

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

@ -0,0 +1,13 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
wget https://remarkableapp.github.io/files/remarkable_1.87_all.deb || error 'Failed to Download!'
sudo apt --fix-broken -y install ./remarkable_1.87_all.deb || error 'Failed to install!'
rm remarkable_1.87_all.deb

@ -0,0 +1,11 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
sudo apt purge remarkable -y || error "Failed to purge remarkable package!"
sudo apt autoremove -y

@ -0,0 +1 @@
https://remarkableapp.github.io/index.html

@ -1,8 +0,0 @@
Play your favourite retro games.
∙ Emulates games from 50+ consoles
∙ Kodi support
∙ Skinable
∙ AND MUCH MORE!
Instructions for installing ROMs are on the webiste
After install, please select "Basic Install" Then select "Yes"
To run in a terminal: emulationstation

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

@ -1,22 +0,0 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$(dirname "$0")")")"
function error {
echo -e "\e[31m$1\e[39m"
exit 1
}
# Get dependencies
"${DIRECTORY}/pkg-install" "rapidjson-dev libavdevice-dev libx11-xcb-dev abuse-lib abuse-sfx alsa-oss alsa-utils autoconf automake autotools-dev binfmt-support bison bluetooth bluez-tools build-essential ca-certificates check checkinstall cmake curl debhelper devscripts dh-autoreconf dh-systemd dialog dirmngr distcc dkms dos2unix dosfstools doxygen e2fsprogs exfat-fuse fbi fcitx-libs-dev feh flac flex fluid-soundfont-gm fontconfig fonts-freefont-ttf fonts-takao fonts-takao-gothic freepats g++ gawk gcc gcc-6 git golang graphviz gstreamer1.0-alsa gstreamer1.0-libav gstreamer1.0-plugins-good icu-devtools imagemagick insserv joystick jq kpartx lhasa libaldmb1-dev liballegro4-dev libao-dev libarchive-dev libasound2-dev libaudiofile-dev libavcodec-dev libavcodec-dev libavformat-dev libavfilter-dev libavformat-dev libavresample-dev libfontconfig1-dev libavutil-dev libbluetooth3 libbluetooth-dev libboost-all-dev libboost-dev libboost-filesystem-dev libboost-regex-dev libboost-system-dev libboost-thread-dev libbz2-dev libcaca-dev libcap-ng-dev libcurl4-openssl-dev libdbus-1-dev libdbus-glib-1-dev libdirectfb-dev libdrm-dev libdw-dev libegl1-mesa-dev libenet-dev libev-dev libevdev-dev libevdev-dev libexpat1-dev libevdev-tools libfaad-dev libflac++-dev libflac-dev libfluidsynth-dev libfontconfig1-dev libfreeimage-dev libfreetype6-dev libfreetype6-dev libcurl4-openssl-dev libfreetype6-dev libudev-dev libfreetype6-dev zlib1g-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev libglew-dev libglm-dev libluajit-5.1-dev libglu1-mesa-dev libgme-dev libguichan-dev libibus-1.0-dev libical-dev libicu-dev libinput10 libjpeg-dev libjpeg-dev cmake libjpeg-dev libtiff5-dev liblua5.1-0-dev libluajit-5.1-dev liblzo2-dev libmad0-dev libmad0-dev libpng-dev libmbedtls-dev libmikmod-dev libminiupnpc-dev libmng-dev libmodplug-dev libmpeg2-4-dev libmpg123-dev libogg-dev libogg-dev libmodplug-dev libopenal-dev libopus-dev libpango1.0-dev libsndfile1-dev libpcap-dev libpciaccess-dev libphysfs-dev libpng-dev libpng-dev libtheora-dev libpthread-stubs0-dev libpulse-dev libraspberrypi-dev libraspberrypi-doc libreadline-dev librsvg2-bin libsamplerate0-dev libsdl1.2-dev libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev libsdl2-ttf-dev libopenal-dev libsdl2-ttf-dev libsdl2-image-dev libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsfml-dev libsm-dev libvlc-dev libsnappy-dev libsndfile1-dev libsndio-dev libsoil-dev libsoundtouch-dev libspectrum-dev libspeexdsp-dev libsqlite3-dev libssl-dev libsubunit-dev libswscale-dev libtheora-dev libtinfo-dev libtolua++5.1-dev libtool libudev-dev libudev-dev libavahi-client-dev libuim-dev libusb-1.0-0-dev libusb-dev libvlccore-dev libvlc-dev libvorbis-dev libvorbisidec-dev libvpx-dev libvulkan-dev libwebp-dev libx11-dev libxext-dev libxi-dev libxinerama-dev libxkbcommon-dev libxkbcommon-x11-0 libxml2-dev libxrandr-dev libxt-dev libxv-dev libyaml-dev lynx-common lynx libzip-dev libzzip-dev lsb-release matchbox-window-manager mc meson ninja-build nodejs npm ntfs-3g omxplayer oss-compat p7zip-full pandoc parted patchelf pkg-config pkg-config libsdl2-dev policykit-1 portaudio19-dev pulseaudio-utils python2-dev python3 python3-dev python3-pip python3-pyudev python3-setuptools python-dbus python-dev python-gobject python-numpy python-pygame python-pyrex qt5-default qtbase5-private-dev raspberrypi-kernel-headers rename rsync scons sqlite3 squashfs-tools subversion tcl-dev texinfo timidity unzip uuid-dev virtualenv vlc wget x11proto-core-dev xa65 xmlstarlet xorg zenity zlib1g zlib1g-dev zlib1g-dev libjpeg-dev" "$(dirname "$0")" || exit 1
#Clone setup script
cd
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
#Run setup
cd RetroPie-Setup
chmod +x retropie_setup.sh
sudo ./retropie_setup.sh
#Delete setup script
sudo rm -r ~/RetroPie-Setup

@ -1,21 +0,0 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$(dirname "$0")")")"
function error {
echo -e "\e[31m$1\e[39m"
exit 1
}
#Reruns the script for uninstall
cd
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
cd RetroPie-Setup
chmod +x retropie_setup.sh
#Prompts for input
echo 'In the following menu, please press "Uninstall Retropie". NOTE: Make sure to keep the packages that were there before the retropie install.'
read -p 'Press [Enter] to open the retropie menu.'
sudo ./retropie_setup.sh
#if your app installs any packages, keep this command here so those packages will be removed.
"${DIRECTORY}/purge-installed" "$(dirname "$0")" || exit 1

@ -1 +0,0 @@
https://retropie.org.uk/

@ -0,0 +1,3 @@
Added to pi-apps by Itai-Nelken.
webapps compiled by Itai-Nelken using nativefier.
nativefier by jiahaog.

@ -0,0 +1,5 @@
Full-featured, open-source Markdown editor.
StackEdit uses the same markdown library as Stack Overflow and is fully compatible with Github README.md files as well.
This is Botspot's preferred tool to write the README for all his repositories.
To run: Menu -> Programming -> StackEdit
To run in a terminal: ~/stackedit/StackEdit

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

@ -0,0 +1,27 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
cd $HOME
echo "Downloading..."
wget https://github.com/Itai-Nelken/Nativefier-WebApps/releases/download/v1.0/StackEdit-linux-armv7l.tar.xz || error 'Failed to Download!'
echo "extracting..."
tar -xf StackEdit-linux-armv7l.tar.xz || error "Failed to extract!"
echo "Renaming folder..."
mv ~/StackEdit-linux-armv7l ~/stackedit || error "Failed to rename folder!"
echo "Creating menu shortcut..."
echo "[Desktop Entry]
StartupNotify=true
Terminal=false
Type=Application
Name=StackEdit
Exec="$HOME/stackedit/StackEdit"
Path="$HOME/stackedit"
Icon="$HOME/pi-apps/apps/StackEdit/icon-64.png"
Categories=Development;IDE;" > ~/.local/share/applications/stackedit.desktop || error "Failed to create menu shortcut!"
rm -f StackEdit-linux-armv7l.tar.xz

@ -0,0 +1,27 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
cd $HOME
echo "Downloading..."
wget https://github.com/Itai-Nelken/Nativefier-WebApps/releases/download/v1.0/StackEdit-linux-arm64.tar.xz || error 'Failed to Download!'
echo "extracting..."
tar -xf StackEdit-linux-arm64.tar.xz || error "Failed to extract!"
echo "Renaming folder..."
mv ~/StackEdit-linux-arm64 ~/stackedit || error "Failed to rename folder!"
echo "Creating menu shortcut..."
echo "[Desktop Entry]
StartupNotify=true
Terminal=false
Type=Application
Name=StackEdit
Exec="$HOME/stackedit/StackEdit"
Path="$HOME/stackedit"
Icon="$HOME/pi-apps/apps/StackEdit/icon-64.png"
Categories=Development;IDE;" > ~/.local/share/applications/stackedit.desktop || error "Failed to create menu shortcut!"
rm -f StackEdit-linux-arm64.tar.xz

@ -0,0 +1,14 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
echo "removing ~/stackedit..."
rm -rf ~/stackedit || error "Failed to remove ~/stackedit!"
echo "removing menu shortcut..."
rm -f ~/.local/share/applications/stackedit.desktop || error "Failed to remove menu shortcut!"
echo "DONE!"

@ -0,0 +1 @@
https://stackedit.io/

@ -1,3 +1,3 @@
apps compiled using Nativefier and scripts written by Itai-Nelken
Nativefier made by jiahaog.
webapp made by Itai-Nelken based on phoenixbyrd's webapps.
scripts written by Itai-Nelken
thanks to Botspot for help with debugging the menu shortcut and for creating pi-apps!

@ -1,7 +1,8 @@
Nativefier Whatsapp Web webapp
a simple Whatsapp Web chromium webapp wrapped in electron with nativefier.
it has a tray icon, so it doesn't take space on the taskbar, but keeps running in the background.
a simple Whatsapp Web chromium webapp
to run:
menu>internet>Whatsapp Web
or type in terminal:
~/WhatsappWeb/whatsappweb.sh

@ -0,0 +1,26 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
cd $HOME
mkdir -p ~/WhatsappWeb/userdata
echo "#!/bin/bash
chromium-browser %U --user-agent='Mozilla/5.0 (X11; CrOS armv7l 11895.95.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.125 Safari/537.36' --user-data-dir=$HOME/WhatsappWeb/userdata --app=https://web.whatsapp.com/ --window-size=1200,700" > ~/WhatsappWeb/whatsappweb.sh
sudo chmod +x ~/WhatsappWeb/whatsappweb.sh
echo "[Desktop Entry]
Name=Whatsapp Web
Comment=Whatsapp Web webapp.
Exec=$HOME/WhatsappWeb/whatsappweb.sh
Path=$HOME/WhatsappWeb
Icon=$(dirname "$0")/icon-64.png
Terminal=false
StartupNotify=true
Type=Application
Categories=Network;" > ~/.local/share/applications/whatsappweb.desktop || error "Failed to create menu button!"

@ -0,0 +1,3 @@
apps compiled using Nativefier and scripts written by Itai-Nelken
Nativefier made by jiahaog.
thanks to Botspot for help with debugging the menu shortcut and for creating pi-apps!

@ -7,7 +7,7 @@ function error {
exit 1
}
wget https://github.com/Itai-Nelken/Nativefier-Whatsapp-Web/releases/download/v1.0/WhatsAppWeb-linux-armv7l.tray.tar.xz || error 'Failed to download!'
wget https://github.com/Itai-Nelken/Nativefier-WebApps/releases/download/v1.0/WhatsAppWeb-linux-armv7l.tray.tar.xz || error 'Failed to download!'
tar -xf WhatsAppWeb-linux-armv7l.tray.tar.xz || error "Failed to extract!"
rm WhatsAppWeb-linux-armv7l.tray.tar.xz
mv "WhatsAppWeb-linux-armv7l(tray)" WhatsAppWeb

@ -7,7 +7,7 @@ function error {
exit 1
}
wget https://github.com/Itai-Nelken/Nativefier-Whatsapp-Web/releases/download/v1.0/WhatsAppWeb-linux-arm64.tray.tar.xz || error 'Failed to download!'
wget https://github.com/Itai-Nelken/Nativefier-WebApps/releases/download/v1.0/WhatsAppWeb-linux-arm64.tray.tar.xz || error 'Failed to download!'
tar -xf WhatsAppWeb-linux-arm64.tray.tar.xz || error "Failed to extract!"
rm WhatsAppWeb-linux-arm64.tray.tar.xz
mv "WhatsAppWeb-linux-arm64(tray)" WhatsAppWeb

@ -0,0 +1,11 @@
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
rm -rf ~/WhatsAppWeb
rm ~/.local/share/applications/whatsappweb.desktop

@ -7,5 +7,5 @@ function error {
exit 1
}
rm -rf ~/WhatsAppWeb
rm ~/.local/share/applications/whatsappweb.desktop
rm -f ~/.local/share/applications/whatsappweb.desktop
rm -rf ~/WhatsappWeb

@ -1 +1 @@
https://github.com/Itai-Nelken/Nativefier-Whatsapp-Web
no website

@ -1,9 +1,8 @@
Run Windows x86 apps with wine x86 running with box86.
Run x86 Windows apps with a box86-emulated version of x86 wine.
To run: wine path/to/file.exe
To configure wine: go to 'Wine configuration' in main menu or type in terminal: wine winecfg
Not all Windows applications will work under WINE. It's a good idea to check online if your program can run, or if WINE needs some setting changes to get it to work.
to configure wine: go to 'Wine configuration' in main menu or type in terminal: wine winecfg
Note: the applications installed with wine will appear under the wine category in the main menu, and they will stay there even after uninstalling wine.
note:
the applications installed with wine will appear under the wine category in the main menu,
and they will stay there even after uninstalling wine.
Need support with running a game or app with wine and box86? Ask it on the Pi Labs Discord: https://discord.gg/JKNQXprqUd

@ -50,7 +50,8 @@ elif echo "$vmsplit_output" | grep -q "^CONFIG_VMSPLIT_2G=y" || echo "$vmsplit_o
echo -e "You are using a kernel with a 2G/2G memory split.\nWine will not work on such systems. What would you like to do?
1. Switch to the 64-bit kernel (about 2 minutes)
2. Compile a 3G/1G kernel (several hours)
3. Exit"
3. Install a precompiled 3G/1G kernel (about 2 minutes but might be outdated)
4. Exit"
read -n1 answer
echo ''
if [ "$answer" == 1 ];then
@ -93,10 +94,35 @@ elif echo "$vmsplit_output" | grep -q "^CONFIG_VMSPLIT_2G=y" || echo "$vmsplit_o
#message
echo -e "It appears the 3G/1G kernel has been built and installed successfully.\nPlease reboot and install the Wine app again."
sleep infinity
elif [ "$answer" == 3 ];then
elif [ "$answer" == 3 ];then
#install precompiled 3g/1g kernel
#backup ~/linux if it exists
rm -rf ~/linux.bak
[ -e ~/linux ] && (echo "$HOME/linux already exists, moving it to $HOME/linux.bak" ; mv -f ~/linux ~/linux.bak)
#download precompiled kernel
echo "Downloading precompiled kernel..."
wget https://github.com/Itai-Nelken/RPi-3g-1g-kernel-wine/releases/download/2/rpi23_3g1g_kernel.tar.xz -O ~/3g1g-rpi-kernel.tar.xz || error "Failed to download prebuilt kernel!"
#extract precompiled kernel
echo "Extracting prebuilt kernel..."
tar -xf ~/3g1g-rpi-kernel.tar.xz || error "Failed to extract kernel!"
cd linux || error "Failed to change folder to ~/linux!"
#install the precompiled kernel
export KERNEL=kernel7
sudo make modules_install || error "sudo make modules_install failed!"
sudo cp arch/arm/boot/dts/*.dtb /boot/ || error "Failed to copy dtb files to /boot!"
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/ || error "Failed to copy overlays to /boot/overlays!"
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img || error "Failed to copy kernel to /boot/$KERNEL.img!"
cd
rm -rf linux
#message
echo -e "It appears the precompiled 3G/1G kernel has been installed successfully.\nPlease reboot and install the Wine app again."
sleep infinity
elif [ "$answer" == 4 ];then
exit 1
else
echo "Invalid response. Must be '1', '2', or '3'."
echo "Invalid response. Must be '1', '2', '3' or '4'."
fi
done
else
@ -179,4 +205,7 @@ Categories=System;" > ~/.local/share/applications/wine-explorer.desktop
# Boot wine (make fresh wineprefix in ~/.wine
BOX86_NOBANNER=1 wine ~/wine/bin/wineboot
BOX86_NOBANNER=1
setarch linux32 -L box86 ~/wine/bin/wine wineboot
#update the wine prefix (~/.wine) to fix the issue that causes wine to not know its system drive
wine wineboot -u

@ -7,14 +7,15 @@ function error {
exit 1
}
rm -rf ~/.wine || error 'Failed to remove ~/.wine, trying again as root'
sudo rm -rf ~/.wine || error 'Failed to remove ~/.wine as root!'
sudo rm -rf /usr/local/bin/wine || error 'Failed to remove /usr/local/bin/wine!'
sudo rm /usr/local/bin/winecfg || error 'Failed to remove /usr/local/bin/winecfg!'
sudo rm /usr/local/bin/wineserver || error 'Failed to remove /usr/local/bin/wineserver!'
rm -rf ~/wine || error 'Failed to remove ~/wine!'
rm -rf ~/.wine
sudo rm -rf /usr/local/bin/wine
sudo rm /usr/local/bin/winecfg
sudo rm /usr/local/bin/wineserver
rm -rf ~/wine
rm ~/.local/share/applications/winecfg.desktop || error 'Failed to remove winecfg menu shortcut'
rm ~/.local/share/applications/wine-config.desktop || error 'Failed to remove winecfg menu shortcut!'
rm ~/.local/share/applications/winetricks.desktop || error 'Failed to remove winetricks menu shortcut!'
rm ~/.local/share/applications/wine-explorer.desktop || error 'Failed to remove wine desktop menu shortcut!'
#if your app installs any packages, keep this command here so those packages will be removed.
"${DIRECTORY}/purge-installed" "$(dirname "$0")" || exit 1

@ -272,7 +272,7 @@ Or do you want one combined install script?" | yad --text-info --fontname=12 --w
output="$(yad --form --on-top \
--title="Create App: Step $step" --window-icon="${DIRECTORY}/icons/logo.png" --center --width=310 --height=$windowheight \
--text="Now it"\'"s time to make your install-32 and install-64 scripts.
One of these scripts will be executed when somebody clicks you app"\'"s Install button.
One of these scripts will be executed when somebody clicks your app"\'"s Install button.
Two text editors should have openened and you can create your scripts." \
--field="Run install-32 script":FBTN "${DIRECTORY}/etc/terminal-run "\""cd $HOME;$'${DIRECTORY}/apps/${name}/install-32';echo 'Closing in 10 seconds.';sleep 10"\"" "\""Running install-32 script of $name"\""" \
--field="Shellcheck install-32"!!'Having problems? This utility helps you locate syntax errors.':FBTN "${DIRECTORY}/etc/terminal-run "\""shellcheck $'${DIRECTORY}/apps/${name}/install-32';echo 'Press Enter to exit.';read enter"\"" "\""Shellcheck"\""" \

@ -17,6 +17,7 @@ Conky|Eyecandy
Cool Retro Term|Eyecandy
Cura|Editors
Discord|Internet
Doom 3|Games
Eagle CAD|Editors
eDEX-UI|Eyecandy
Email Checker|Internet
@ -29,8 +30,8 @@ LibrePCB|Editors
Lightpad|Eyecandy
Minecraft Bedrock|Games
Minecraft Java|Games
Minecraft Pi (Modded)|Games
Mission Planner|Tools
Node.js|Internet
OBS Studio|Tools
PiGro|Tools
piKiss|Tools
@ -42,11 +43,13 @@ Puffin Browser Demo|Internet
Pycharm CE|Editors
QEMU|Tools
Raspi2png|Tools
Remarkable|Editors
Retropie|Games
Scrcpy|Tools
Snap Store|Tools
Sonic Pi 3.2|Editors
SpeedTest-CLI|Internet
StackEdit|Editors
Steam|Games
Sublime Text|Editors
TBOPlayer|Tools
@ -69,4 +72,4 @@ Wine (x86)|Tools
WPS Office|Editors
YouTubuddy|Internet
Zoom|Internet
Doom 3|hidden
Minecraft Pi (Modded)|Games

15
gui

@ -23,8 +23,9 @@ if [ ! -z "$1" ];then
output="$1"
fi
"${DIRECTORY}/etc/categoryedit" "Minecraft Pi (Modded)" 'hidden'
"${DIRECTORY}/etc/categoryedit" "Doom 3" 'hidden'
("${DIRECTORY}/etc/categoryedit" "Minecraft Pi (Modded)" 'Games'
"${DIRECTORY}/etc/categoryedit" "RetroPie" 'hidden'
"${DIRECTORY}/etc/categoryedit" "Doom 3" 'Games') &
gio trash "${DIRECTORY}/apps/Minecraft Pi" 2>/dev/null
gio trash "${DIRECTORY}/apps/MCPi Reborn" 2>/dev/null
@ -307,6 +308,9 @@ $installedpackages"
if [ "$(cat "${DIRECTORY}/data/settings/Show Edit button")" == 'Yes' ];then
echo "--button=Edit!${DIRECTORY}/icons/edit.png:10"
fi
if [ -f "${DIRECTORY}/apps/${output}/credits" ];then
echo "--button=Credits!${DIRECTORY}/icons/credits.png:12"
fi
if [ ! -f "${DIRECTORY}/data/status/${output}" ];then
#Taking a chance here. If status file is nonexistent, assume uninstalled.
echo "--button=Install!${DIRECTORY}/icons/install.png:4"
@ -385,6 +389,13 @@ $installedpackages"
elif [ $button == 10 ];then
echo "edit $output"
"${DIRECTORY}/createapp" "$output"
elif [ $button == 12 ];then
echo "credits of $output"
cat "${DIRECTORY}/apps/${output}/credits" | yad --text-info --fontname=12 --wrap \
--image="${DIRECTORY}/apps/${output}/icon-64.png" --image-on-top \
--title="Credits of ${output}" --window-icon="${DIRECTORY}/icons/logo.png" --center --width=700 --height=300 \
--button=Close!"${DIRECTORY}/icons/exit.png":0
else
echo 'unknown button. Exiting now.'
exit 0

@ -7,26 +7,53 @@ function error {
DIRECTORY="$(readlink -f "$(dirname "$0")")"
#install yad automatically
if ! command -v yad >/dev/null;then
echo -n "YAD is required but not installed. Install now? [Y/n] "
read answer
if [ "$answer" == n ];then
error "User declined."
fi
if [ -f /usr/bin/apt ];then
sudo apt update
sudo apt install -y yad
updated=1
elif [ -f /usr/bin/pacman ];then
sudo pacman -S yad
else
error "Failed to find any package manager"
error "Failed to find any package manager to install yad."
fi
fi
#remove annoying YAD icon browser launcher
sudo rm -f /usr/share/applications/yad-icon-browser.desktop
echo "Creating menu button..."
#install git
if ! command -v git >/dev/null;then
if [ -f /usr/bin/apt ];then
#only run sudo apt update if not already run
if [ -z "$updated" ];then
sudo apt update
fi
sudo apt install -y git
else
error "Failed to find any package manager to install git."
fi
fi
#download pi-apps if folder missing
if [ -z "$DIRECTORY" ] || [ "$DIRECTORY" == "$HOME" ] || [ "$DIRECTORY" == bash ];then
DIRECTORY="$HOME/pi-apps"
#if directory does not exist, download it
if [ ! -d "$DIRECTORY" ];then
echo "Downloading Pi-Apps..."
output="$(git clone --depth 1 https://github.com/Botspot/pi-apps "$DIRECTORY" 2>&1)"
if [ ! -d "$DIRECTORY" ];then
error "Pi-Apps download failed!\ngit clone output was: $output"
fi
fi
fi
#from this point in, DIRECTORY variable populated with valid pi-apps directory
#menu button
if [ ! -f ~/.local/share/applications/pi-apps.desktop ];then
echo "Creating menu button..."
fi
mkdir -p ~/.local/share/applications
echo "[Desktop Entry]
Name=Pi Apps
@ -37,11 +64,15 @@ Terminal=false
Type=Application
Categories=Utility;" > ~/.local/share/applications/pi-apps.desktop
echo "Adding Desktop shortcut..."
if [ ! -f ~/Desktop/pi-apps.desktop ];then
echo "Adding Desktop shortcut..."
fi
cp -f ~/.local/share/applications/pi-apps.desktop ~/Desktop/pi-apps.desktop
chmod +x ~/Desktop/pi-apps.desktop
echo "Creating Settings menu button..."
if [ ! -f ~/.local/share/applications/pi-apps-settings.desktop ];then
echo "Creating Settings menu button..."
fi
echo "[Desktop Entry]
Name=Pi Apps Settings
Comment=Configure Pi-Apps or create an App
@ -51,7 +82,9 @@ Terminal=false
Type=Application
Categories=Settings;" > ~/.local/share/applications/pi-apps-settings.desktop
echo "Creating autostarted updater..."
if [ ! -f ~/.config/autostart/pi-apps-updater.desktop ];then
echo "Creating autostarted updater..."
fi
mkdir -p ~/.config/autostart
echo "[Desktop Entry]
Name=Pi Apps Updater
@ -63,13 +96,12 @@ X-GNOME-Autostart-enabled=true
Hidden=false
NoDisplay=false" > ~/.config/autostart/pi-apps-updater.desktop
mkdir -p "${DIRECTORY}/data"
cd "${DIRECTORY}/data"
mkdir -p "${DIRECTORY}/data" && cd "${DIRECTORY}/data" || error "Failed to make and enter ${DIRECTORY}/data directory!"
mkdir -p installed-packages preload settings status update-status categories
cd $HOME
#hide template file by default
"${DIRECTORY}/etc/categoryedit" "template" 'hidden'
"${DIRECTORY}/etc/categoryedit" "template" 'hidden' >/dev/null
#hide duplicates if running in twisteros
if [ -f /usr/local/bin/twistver ];then
@ -89,15 +121,28 @@ Chromium Widevine
Back to Chromium v78
Lightpad"
for app in $apps ;do
"${DIRECTORY}/etc/categoryedit" "$app" 'hidden'
"${DIRECTORY}/etc/categoryedit" "$app" 'hidden' >/dev/null
done
echo "Finished hiding apps on TwisterOS."
fi
echo "Creating settings if they don"\'"t exist..."
#pi-apps terminal command
if [ ! -f /usr/local/bin/pi-apps ] || ! grep -q /usr/local/bin/pi-apps "${DIRECTORY}/gui";then
rm /usr/local/bin/pi-apps
echo "#!/bin/bash
${DIRECTORY}/gui" | sudo tee /usr/local/bin/pi-apps >/dev/null
sudo chmod +x /usr/local/bin/pi-apps
echo "You can now run pi-apps in a terminal, just by running 'pi-apps'"
fi
if [ "$(ls "$DIRECTORY/data/settings" 2>/dev/null | wc -l)" -le 2 ];then
echo "Generating default settings..."
fi
"${DIRECTORY}/settings" refresh
echo "Preloading app list..."
if [ ! -f "$DIRECTORY/data/preload/LIST-" ];then
echo "Preloading app list..."
fi
"${DIRECTORY}/preload" &>/dev/null
echo "Installation complete."

@ -31,7 +31,6 @@ dirhash() {
#------ hash every file in the folder ---------------- and add to it the filesystem list ------ hash it again
hash="$(echo -e "$(find "$1" -type f -print0 | xargs -0 sha1sum | awk '{print $1}')$(find "$1" -type f -exec basename {} \;)" | sha1sum | awk '{print $1}')"
echo "$hash"
echo "$hash" 1>&2
}
if [ "$1" == 'multi-install' ];then
failed=0
@ -106,7 +105,7 @@ elif [ "$1" == 'install' ];then
fi
#if already installed then ask for confirmation
if [ "$(cat "${DIRECTORY}/data/status/${app}" &>/dev/null)" == 'installed' ];then
if [ "$(cat "${DIRECTORY}/data/status/${app}" 2>/dev/null)" == 'installed' ];then
yad --text="$app is already installed. Are you sure you want to install it again?" \
--text-align=center --center --title='Quick question' --window-icon="${DIRECTORY}/icons/logo.png" \
--button=No!"${DIRECTORY}/icons/exit.png":1 --button=Yes!"${DIRECTORY}/icons/check.png":0 || exit 0
@ -151,7 +150,7 @@ elif [ "$1" == 'uninstall' ];then
fi
#if already uninstalled then ask for confirmation
if [ "$(cat "${DIRECTORY}/data/status/${app}" &>/dev/null)" == 'uninstalled' ];then
if [ "$(cat "${DIRECTORY}/data/status/${app}" 2>/dev/null)" == 'uninstalled' ];then
yad --text="$app is already uninstalled. Are you sure you want to uninstall it again?" \
--text-align=center --center --title='Quick question' --window-icon="${DIRECTORY}/icons/logo.png" \
--button=No!"${DIRECTORY}/icons/exit.png":1 --button=Yes!"${DIRECTORY}/icons/check.png":0 || exit 0
@ -184,7 +183,7 @@ elif [ "$1" == 'update' ];then
true
else
rm -rf "${DIRECTORY}/update" && mkdir "${DIRECTORY}/update" && cd "${DIRECTORY}/update" || error "failed to enter the update directory!"
git clone "$(cat "${DIRECTORY}/etc/git_url")" || error "failed to clone repository!"
git clone --depth=1 "$(cat "${DIRECTORY}/etc/git_url")" || error "failed to clone repository!"
fi
newhash="$(dirhash "${DIRECTORY}/update/pi-apps/apps/${app}")"
@ -211,18 +210,16 @@ elif [ "$1" == 'update' ];then
echo "$app is identical to the online version. Nothing to do!"
exit 0
else
echo "$app is not identical to the online version. Reinstalling..."
echo "$app is not identical to the online version."
fi
#else
installback=no
#if install was changed
if [ ! "$newinstallhash" == "$oldinstallhash" ];then
#if installed already
if [ "$(cat "${DIRECTORY}/data/status/${app}" &>/dev/null)" == 'installed' ];then
installback=yes
#uninstall it using a recursive script instance
"${DIRECTORY}/manage" uninstall "$app"
fi
#if install was changed #if installed already
if [ "$newinstallhash" != "$oldinstallhash" ] && [ "$(cat "${DIRECTORY}/data/status/${app}" 2>/dev/null)" == 'installed' ];then
installback=yes
echo "$app's install script has been updated. Reinstalling $app..."
#uninstall it using a recursive script instance
"${DIRECTORY}/manage" uninstall "$app"
fi
#move old program to trash
@ -252,7 +249,7 @@ elif [ "$1" == 'check-all' ];then
fi
rm -rf "${DIRECTORY}/update" && mkdir "${DIRECTORY}/update" && cd "${DIRECTORY}/update" || error "failed to enter the update directory!"
git clone "$(cat "${DIRECTORY}/etc/git_url")" || error "failed to clone repository!"
git clone --depth=1 "$(cat "${DIRECTORY}/etc/git_url")" || error "failed to clone repository!"
#generate entire app list, combine local apps and online apps to one list
applist="$(echo -e "$(ls "${DIRECTORY}/update/pi-apps/apps")\n$(ls "${DIRECTORY}/apps")" | sort | uniq)"
@ -264,7 +261,7 @@ elif [ "$1" == 'check-all' ];then
IFS=$'\n'
for app in $applist
do
if [ ! -f "${DIRECTORY}/data/status/${app}" ] || [ "$(cat "${DIRECTORY}/data/status/${app}" &>/dev/null)" == 'uninstalled' ];then
if [ ! -f "${DIRECTORY}/data/status/${app}" ] || [ "$(cat "${DIRECTORY}/data/status/${app}" 2>/dev/null)" == 'uninstalled' ];then
#if app is uninstalled, then remove it from the list.
applist="$(echo "$applist" | grep -vx "$app")"
echo "Removing ${app} from list because it is uninstalled." 1>&2

Loading…
Cancel
Save