Changeset ecc3f24


Ignore:
Timestamp:
08/25/14 12:31:20 (3 weeks ago)
Author:
Kris Moore <kris@…>
Branches:
master, releng/10.0.3
Children:
4b86c8a
Parents:
6d8681a
Message:

Add support to pbi-manager to enable / start services when installing
a PBI, for both system and jail installs

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • pbi-modules/multimedia/plexmediaserver/service-start

    r6d8681a recc3f24  
    55#        SECONDARY - Simply enabled and hidden from UI 
    66 
    7 # SERVICENAME           RCSCRIPT                TYPE 
    8 plexmediaserver         rc.d/plexmediaserver    PRIMARY 
     7# SERVICENAME           RCSCRIPT                        TYPE 
     8plexmediaserver         plexmediaserver PRIMARY 
  • src-sh/pbi-manager/pbi-manager

    rb969f40 recc3f24  
    225225        if [ $? -eq 0 ] ; then 
    226226                PBI_INJAIL="$1" 
     227                PBI_JAILDIR=`jls | grep -v "JID" | tr -s ' ' | sed 's,^[ \t]*,,' | grep -q "^$1 " | awk '{print $4}'` 
    227228                PKG_FLAG="-j $1" 
    228229                return 
     
    233234        if [ -n "$line" ] ; then 
    234235                PBI_INJAIL="`echo $line | awk '{print $1}'`"     
     236                PBI_JAILDIR=`jls | grep -v "JID" | tr -s ' ' | sed 's,^[ \t]*,,' | grep -q "^$PBI_INJAIL " | awk '{print $4}'` 
    235237                PKG_FLAG="-j $PBI_INJAIL" 
    236                 PBI_INJAIL="$1" 
    237238                return 
    238239        fi 
     
    277278 
    278279        # Don't modify unless you know what your doing! 
    279         MOD_PREINS="pre-install.sh" 
    280         MOD_POSTINS="post-install.sh" 
    281         MOD_PREREM="pre-remove.sh" 
    282280        MOD_XDGDESK_DIR="xdg-desktop" 
    283281        MOD_XDGMENU_DIR="xdg-menu" 
     
    678676        fi 
    679677 
     678        # Does this application have any services that need to be enabled? 
     679        check_service_enable "$PBI_CONFDIR" 
     680 
    680681        # Last, but not least, check for and add any menu icons 
    681682        add_xdg_icon "$PBI_CONFDIR" "menu" 
    682683 
    683684        exit 0 
     685} 
     686 
     687# Check if this application has services to enable 
     688check_service_enable() { 
     689        # Check if this PBI has a service config 
     690        if [ ! -e "$PBI_DBINDEXDIR/$1/service-start" ] ; then return 0 ; fi 
     691        local sname 
     692        local sscript 
     693        local stype 
     694 
     695        # Have a service config, lets enable services! 
     696        while read line 
     697        do 
     698                echo $line | grep -q "^#" 
     699                if [ $? -eq 0 ] ; then continue ; fi 
     700 
     701                sname=`echo $line | awk '{print $1}'` 
     702                sscript=`echo $line | awk '{print $2}'` 
     703                stype=`echo $line | awk '{print $3}'` 
     704                if [ -z "$stype" -o -z "$sscript" -o -z "$sname" ] ; then continue ; fi 
     705 
     706                # Found one, lets enable it now 
     707                if [ -n "$PBI_INJAIL" ] ; then 
     708                        grep -q "^${sname}_enable=\"YES\"" ${PBI_JAILDIR}/etc/rc.conf 
     709                        if [ $? -ne 0 ] ; then 
     710                                echo "${sname}_enable=\"YES\"" >> ${PBI_JAILDIR}/etc/rc.conf 
     711                        fi 
     712                        jexec ${PBI_INJAIL} service ${sscript} start 
     713                else 
     714                        grep -q "^${sname}_enable=\"YES\"" /etc/rc.conf 
     715                        if [ $? -ne 0 ] ; then 
     716                                echo "${sname}_enable=\"YES\"" >> /etc/rc.conf 
     717                        fi 
     718                        service ${sscript} start 
     719                fi 
     720        done < $PBI_DBINDEXDIR/$1/service-start 
    684721} 
    685722 
     
    727764        fi 
    728765        echo "" 
    729 } 
    730  
    731 # Check if we have a postinstall script we need to use 
    732 check_postinstall_script() { 
    733         open_header_tmp 
    734  
    735         if [ ! -e "${PBI_HEADER_TMPDIR}/${MOD_POSTINS}" ] ; then 
    736                 delete_header_tmp 
    737                 return 0 
    738         fi 
    739  
    740         sh "${PBI_HEADER_TMPDIR}/${MOD_POSTINS}" 
    741         delete_header_tmp 
    742 } 
    743  
    744 # Check if we have a preinstall script we need to use 
    745 check_preinstall_script() { 
    746         open_header_tmp 
    747  
    748         if [ ! -e "${PBI_HEADER_TMPDIR}/${MOD_PREINS}" ] ; then  
    749                 delete_header_tmp 
    750                 return 0  
    751         fi 
    752  
    753         sh "${PBI_HEADER_TMPDIR}/${MOD_PREINS}" 
    754         if [ "$?" != "0" ] ; then 
    755                 delete_header_tmp 
    756                 exit_err "${MOD_PREINS} returned error status" 
    757         fi 
    758         delete_header_tmp 
    759766} 
    760767 
     
    815822                 
    816823        exit_trap 
    817 } 
    818  
    819 # Check if we have a preinstall script we need to use 
    820 check_preremove_script() { 
    821         if [ ! -e "${PBI_DBAPPDIR}/${PBI_DELETENAME}/${MOD_PREREM}" ] ; then return 0 ; fi 
    822  
    823         if [ "$PBI_VERBOSE" = "YES" ] ; then 
    824                 echo "Running pre-removal script: ${PBI_DBAPPDIR}/${PBI_DELETENAME}/${MOD_PREREM}" 
    825         fi 
    826         sh "${PBI_DBAPPDIR}/${PBI_DELETENAME}/${MOD_PREREM}" 
    827824} 
    828825 
Note: See TracChangeset for help on using the changeset viewer.