1if [ ! "$_PACKAGES_PACKAGES_SUBR" ]; then _PACKAGES_PACKAGES_SUBR=1 2# 3# Copyright (c) 2013 Devin Teske 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: --- 10 unchanged lines hidden (view full) --- 19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25# SUCH DAMAGE. 26# |
27# $FreeBSD: head/usr.sbin/bsdconfig/share/packages/packages.subr 264840 2014-04-23 22:04:04Z dteske $ |
28# 29############################################################ INCLUDES 30 31BSDCFG_SHARE="/usr/share/bsdconfig" 32. $BSDCFG_SHARE/common.subr || exit 1 33f_dprintf "%s: loading includes..." "$0" 34f_include $BSDCFG_SHARE/dialog.subr 35f_include $BSDCFG_SHARE/device.subr --- 797 unchanged lines hidden (view full) --- 833 then 834 f_dprintf "packageAdd: %s" \ 835 "$msg_no_package_name_passed_in_package_variable" 836 return $FAILURE 837 fi 838 839 { # Verify and initialize device media if-defined 840 f_media_verify && |
841 f_device_init device_media && |
842 f_index_initialize packages/INDEX 843 } || return $FAILURE 844 845 # Now we have (indirectly via f_index_read()): 846 # CATEGORY_MENU_LIST _categories_{varpkg} _rundeps_{varpkg} 847 # PACKAGE_CATEGORIES _npkgs 848 849 local varpkg --- 68 unchanged lines hidden (view full) --- 918 fi 919 done 920 [ $status -eq $SUCCESS ] || return $status 921 922 # 923 # Done with the deps? Try to load the real m'coy. 924 # 925 |
926 f_package_extract device_media "$name" "$depended" |
927 retval=$? 928 if [ $retval -ne $SUCCESS ]; then 929 status=$(( $status | $retval )) 930 else 931 setvar _mark_$varpkg X 932 fi 933 934 return $status --- 4 unchanged lines hidden (view full) --- 939# Extract a package based on a namespec and media device. If $depended is 940# present and non-NULL, the notification displayed while installing the package 941# has "as a dependency" appended. 942# 943f_package_extract() 944{ 945 local funcname=f_package_extract 946 local device="$1" name="$2" depended="$3" |
947 local devname= |
948 |
949 $device get name devname |
950 f_dprintf "$funcname: device=[%s] name=[%s] depended=[%s]" \ |
951 "$devname" "$name" "$depended" |
952 953 # Check to make sure it's not already there 954 local varpkg mark= 955 f_str2varname "$name" varpkg 956 f_getvar _mark_$varpkg mark 957 [ "$mark" = "X" ] && return $SUCCESS 958 959 if ! f_device_init $device; then --- 8 unchanged lines hidden (view full) --- 968 969 # Make a couple paranoid locations for temp 970 # files to live if user specified none 971 local tmpdir 972 f_getvar $VAR_PKG_TMPDIR:-/var/tmp tmpdir 973 f_quietly mkdir -p -m 1777 "$tmpdir" 974 975 local path device_type |
976 $device get type device_type |
977 case "$name" in 978 */*) path="$name" ;; 979 *) 980 if [ "$device_type" = "$DEVICE_TYPE_HTTP" ]; then 981 path="$PKG_ABI/latest/All/$name" 982 else 983 path="packages/$PKG_ABI/All/$name" 984 fi --- 12 unchanged lines hidden (view full) --- 997 then 998 # Mirroring physical media over HTTP 999 path="packages/$PKG_ABI/All/$name$pkg_ext" 1000 found=1 1001 break 1002 fi 1003 done 1004 [ "$found" ] && f_dprintf "$funcname: found path=[%s] dev=[%s]" \ |
1005 "$path" "$devname" |
1006 1007 local alert=f_show_msg no_confirm= 1008 f_getvar $VAR_NO_CONFIRM no_confirm 1009 [ "$no_confirm" ] && alert=f_show_info 1010 1011 if [ ! "$found" ]; then 1012 f_dprintf "$funcname: No such %s file on %s device" \ |
1013 "$path" "$devname" |
1014 $alert "$msg_unable_to_fetch_package_from_selected_media" \ 1015 "$name" 1016 [ "$no_confirm" ] && sleep 2 1017 return $FAILURE 1018 fi 1019 |
1020 if [ "$depended" ]; then 1021 f_show_info "$msg_adding_package_as_a_dependency_from_media" \ 1022 "$name" "$devname" 1023 else 1024 f_show_info "$msg_adding_package_from_media" "$name" "$devname" 1025 fi 1026 1027 # Request the package be added via pkg-install(8) --- 31 unchanged lines hidden (view full) --- 1059 fi 1060 1061 f_dprintf "$funcname: name=[%s]" "$name" 1062 1063 [ "$name" ] || return $FAILURE 1064 1065 { # Verify and initialize device media if-defined 1066 f_media_verify && |
1067 f_device_init device_media && |
1068 f_index_initialize packages/INDEX 1069 } || return $FAILURE 1070 1071 # Now we have (indirectly via f_index_read()): 1072 # CATEGORY_MENU_LIST _categories_{varpkg} _rundeps_{varpkg} 1073 # PACKAGE_CATEGORIES _npkgs 1074 1075 local varpkg --- 112 unchanged lines hidden --- |