mirror of
https://github.com/YunoHost/install_script.git
synced 2024-09-03 20:06:25 +02:00
Reorganize functions + misc stuff
This commit is contained in:
parent
a3f589d9bb
commit
719bbf1095
1 changed files with 110 additions and 99 deletions
209
install_yunohost
209
install_yunohost
|
@ -15,8 +15,112 @@
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
YUNOHOST_LOG="/var/log/yunohost-installation.log"
|
set -u
|
||||||
THIS_MACHINE_RELEASE="$(lsb_release -c | awk '{print $2}')"
|
|
||||||
|
# Globals
|
||||||
|
|
||||||
|
readonly YUNOHOST_LOG="/var/log/yunohost-installation.log"
|
||||||
|
readonly THIS_MACHINE_RELEASE="$(lsb_release -c | awk '{print $2}')"
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Main functions #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
function usage() {
|
||||||
|
print "
|
||||||
|
Usage :
|
||||||
|
`basename $0` [-a] [-d <DISTRIB>] [-h]
|
||||||
|
|
||||||
|
Options :
|
||||||
|
-a Enable automatic mode. No questions are asked.
|
||||||
|
This does not perform the post-install step.
|
||||||
|
-d Choose the distribution to install ('stable', 'testing', 'unstable').
|
||||||
|
Defaults to 'stable'
|
||||||
|
-h Prints this help and exit
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
function parse_options()
|
||||||
|
{
|
||||||
|
AUTOMODE=0
|
||||||
|
DISTRIB=stable
|
||||||
|
BUILD_IMAGE=0
|
||||||
|
|
||||||
|
while getopts ":aid:h" option; do
|
||||||
|
case $option in
|
||||||
|
a)
|
||||||
|
AUTOMODE=1
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
;;
|
||||||
|
d)
|
||||||
|
DISTRIB=$OPTARG
|
||||||
|
;;
|
||||||
|
i)
|
||||||
|
# This hidden option will allow to build generic image for Rpi/Olimex
|
||||||
|
BUILD_IMAGE=1
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
:)
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function main()
|
||||||
|
{
|
||||||
|
parse_options
|
||||||
|
|
||||||
|
step ensure_root || die "This script must be run as root"
|
||||||
|
|
||||||
|
if is_raspbian ; then
|
||||||
|
step ensure_pi_logout || die "The user pi should be logged out"
|
||||||
|
fi
|
||||||
|
|
||||||
|
step upgrade_system || die "Unable to update the system"
|
||||||
|
step installscript_dependencies || die "Unable to install dependencies to install script"
|
||||||
|
step create_custom_config || die "Creating custom configuration file /etc/yunohost/yunohost.conf failed"
|
||||||
|
step confirm_installation || die "Installation cancelled at your request"
|
||||||
|
step setup_package_source || die "Setting up deb package sources failed"
|
||||||
|
step apt_update || die "Error caught during 'apt-get update'"
|
||||||
|
step register_debconf || die "Unable to insert new values into debconf database"
|
||||||
|
step workaround_avahi_installation || die "Unable to install workaround for avahi installation"
|
||||||
|
step install_yunohost_packages || die "Installation of Yunohost packages failed"
|
||||||
|
step restart_services || die "Error caught during services restart"
|
||||||
|
|
||||||
|
if is_raspbian ; then
|
||||||
|
step del_user_pi || die "Unable to delete user pi"
|
||||||
|
step change_hostname || die "Unable to change hostname"
|
||||||
|
step setup_firstboot || die "Unable to setup firstboot"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$BUILD_IMAGE" == "1" ]] ; then
|
||||||
|
step clean_image || die "Unable to clean image"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if is_raspbian ; then
|
||||||
|
# Reboot should be done before postinstall to be able to run iptables rules
|
||||||
|
reboot
|
||||||
|
fi
|
||||||
|
|
||||||
|
step post_install || die "Post-installation failed"
|
||||||
|
|
||||||
|
# Success !
|
||||||
|
success
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Helpers #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
function print() {
|
function print() {
|
||||||
printf "%s\n" "$*";
|
printf "%s\n" "$*";
|
||||||
|
@ -89,6 +193,10 @@ function is_raspbian() {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Installation steps #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
function apt_get_wrapper() {
|
function apt_get_wrapper() {
|
||||||
if [[ "$AUTOMODE" == "0" ]] ;
|
if [[ "$AUTOMODE" == "0" ]] ;
|
||||||
then
|
then
|
||||||
|
@ -406,101 +514,4 @@ Do you want to try again now?
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function usage() {
|
|
||||||
print "
|
|
||||||
Usage :
|
|
||||||
`basename $0` [-a] [-d <DISTRIB>] [-h]
|
|
||||||
|
|
||||||
Options :
|
|
||||||
-a Enable automatic mode. No questions are asked.
|
|
||||||
This does not perform the post-install step.
|
|
||||||
-d Choose the distribution to install ('stable', 'testing', 'unstable').
|
|
||||||
Defaults to 'stable'
|
|
||||||
-h Prints this help and exit
|
|
||||||
"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Treat unset variables as an error when performing
|
|
||||||
# parameter expansion. An error message will be written
|
|
||||||
# to the standard error, and a non-interactive shell will exit.
|
|
||||||
set -u
|
|
||||||
|
|
||||||
function parse_options()
|
|
||||||
{
|
|
||||||
AUTOMODE=0
|
|
||||||
DISTRIB=stable
|
|
||||||
BUILD_IMAGE=0
|
|
||||||
|
|
||||||
while getopts ":aid:h" option; do
|
|
||||||
case $option in
|
|
||||||
a)
|
|
||||||
AUTOMODE=1
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
;;
|
|
||||||
d)
|
|
||||||
DISTRIB=$OPTARG
|
|
||||||
;;
|
|
||||||
i)
|
|
||||||
# This hidden option will allow to build generic image for Rpi/Olimex
|
|
||||||
BUILD_IMAGE=1
|
|
||||||
;;
|
|
||||||
h)
|
|
||||||
usage
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
:)
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
\?)
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function main()
|
|
||||||
{
|
|
||||||
parse_options
|
|
||||||
|
|
||||||
step ensure_root || die "This script must be run as root"
|
|
||||||
|
|
||||||
if is_raspbian ; then
|
|
||||||
step ensure_pi_logout || die "The user pi should be logged out"
|
|
||||||
fi
|
|
||||||
|
|
||||||
step upgrade_system || die "Unable to update the system"
|
|
||||||
step installscript_dependencies || die "Unable to install dependencies to install script"
|
|
||||||
step create_custom_config || die "Creating custom configuration file /etc/yunohost/yunohost.conf failed"
|
|
||||||
step confirm_installation || die "Installation cancelled at your request"
|
|
||||||
step setup_package_source || die "Setting up deb package sources failed"
|
|
||||||
step apt_update || die "Error caught during 'apt-get update'"
|
|
||||||
step register_debconf || die "Unable to insert new values into debconf database"
|
|
||||||
step workaround_avahi_installation || die "Unable to install workaround for avahi installation"
|
|
||||||
step install_yunohost_packages || die "Installation of Yunohost packages failed"
|
|
||||||
step restart_services || die "Error caught during services restart"
|
|
||||||
|
|
||||||
if is_raspbian ; then
|
|
||||||
step del_user_pi || die "Unable to delete user pi"
|
|
||||||
step change_hostname || die "Unable to change hostname"
|
|
||||||
step setup_firstboot || die "Unable to setup firstboot"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$BUILD_IMAGE" == "1" ]] ; then
|
|
||||||
step clean_image || die "Unable to clean image"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if is_raspbian ; then
|
|
||||||
# Reboot should be done before postinstall to be able to run iptables rules
|
|
||||||
reboot
|
|
||||||
fi
|
|
||||||
|
|
||||||
step post_install || die "Post-installation failed"
|
|
||||||
|
|
||||||
# Success !
|
|
||||||
success
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
main
|
||||||
|
|
Loading…
Add table
Reference in a new issue