X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=blobdiff_plain;f=src%2Fpakfire%2Flib%2Ffunctions.sh;h=bc05bd01e0112d137715241c36e5cfc8faed9a69;hp=1c4e760ea69aa0a2ca7809d7e8fed8d91d18ce60;hb=c78993cdde0391d1336797dd4368b41794a40487;hpb=5ad5a6bcd654f9db982135f6c3ccc8352a2afa87 diff --git a/src/pakfire/lib/functions.sh b/src/pakfire/lib/functions.sh index 1c4e760ea..bc05bd01e 100644 --- a/src/pakfire/lib/functions.sh +++ b/src/pakfire/lib/functions.sh @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,41 +24,49 @@ extract_files() { echo "Extracting files..." - tar xvf /opt/pakfire/tmp/files --preserve --numeric-owner -C / + tar xvf /opt/pakfire/tmp/files --no-overwrite-dir -p --numeric-owner -C / + echo "...Finished." +} + +extract_backup_includes() { + echo "Extracting backup includes..." + tar xvf /opt/pakfire/tmp/files --no-overwrite-dir -p --numeric-owner -C / \ + var/ipfire/backup/addons/includes echo "...Finished." } remove_files() { echo "Removing files..." - for i in $(cat /opt/pakfire/tmp/ROOTFILES); do - rm -rfv ${i} + for i in $(cat /opt/pakfire/db/rootfiles/${NAME}); do + rm -rfv /${i} done echo "...Finished." } -make_backup(){ - [ -e "/var/ipfire/backup/addons/include/${1}" ] && \ - ( echo "Creating Backup..." - /usr/local/bin/backupctrl addonbackup ${1} - echo "...Finished." ) +make_backup() { + if [ -e "/var/ipfire/backup/addons/includes/${1}" ]; then + echo "Creating Backup..." + /usr/local/bin/backupctrl addonbackup ${1} + echo "...Finished." + fi } -restore_backup(){ - [ -e "/var/ipfire/backup/addons/backup/${1}" ] && \ - ( echo "Restoring Backup..." && \ - /usr/local/bin/backupctrl restoreaddon ${1} && \ - echo "...Finished." ) +restore_backup() { + if [ -e "/var/ipfire/backup/addons/backup/${1}.ipf" ]; then + echo "Restoring Backup..." + /usr/local/bin/backupctrl restoreaddon ${1}.ipf + echo "...Finished." + fi } restart_service() { - - /etc/init.d/$1 restart - + /etc/init.d/${1} restart } start_service() { DELAY=0 while true + do case "${1}" in --delay|-d) DELAY=${2} @@ -74,15 +82,28 @@ start_service() { ;; *) break - ;; + ;; esac - - [ -e "/etc/init.d/${1}" ] && \ - (sleep ${DELAY} && /etc/init.d/${1} start ${BACKGROUND}) + done + + if [ -e "/etc/init.d/${1}" ]; then + if [ -n "${BACKGROUND}" ]; then + (sleep ${DELAY} && /etc/init.d/${1} start) & + else + sleep ${DELAY} && /etc/init.d/${1} start + fi + fi } stop_service() { - - [ -e "/etc/init.d/${1}" ] && /etc/init.d/${1} stop + if [ -e "/etc/init.d/${1}" ]; then + /etc/init.d/${1} stop + fi +} +rebuild_langcache() { + echo "Rebuilding language cache..." + perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + echo "...Finished." } +