Pastebin
API
tools
faq
paste
Login
Sign up
Please fix the following errors:
New Paste
Syntax Highlighting
#!/bin/bash INSTALL_MODE='Step by step installation (classic mode)' EXPORT_FNs=false #Setting this to true might provide a way of overriding the functions in the ppm gui. USE_installmodes_sh=false SKIP_installmodes_sh=false rm /tmp/petget_proc/pkgs_to_install_s243a rm /tmp/petget_proc/pkgs_to_install #touch /root/.packages/skip_space_check echo changed > /tmp/petget_proc/mode_changed touch /tmp/petget_proc/force_install touch /root/.packages/skip_space_check touch /tmp/petget_proc/manual_pkg_download rm /tmp/petget_proc/pkgs_to_install if [ ! -f /tmp/petget_proc/install_pets_quietly -a ! -f /tmp/petget_proc/download_only_pet_quietly \ -a ! -f /tmp/petget_proc/download_pets_quietly ]; then echo ok elif [ "$PREVPKG" != "" ]; then echo changed >> /tmp/petget_proc/mode_changed fi rm -f /tmp/petget_proc/*_pet{,s}_quietly echo "" > /tmp/petget_proc/forced_install touch /tmp/petget_proc/install_classic echo 'wizard' > /var/local/petget/ppm_mode #install_package () is taken from: https://github.com/puppylinux-woof-CE/woof-CE/blob/60d94862a3343bf0a062a0fcd0dd73475d6985ba/woof-code/rootfs-skeleton/usr/local/petget/installmodes.sh#L406 install_package () { #set -x [ "$(cat /tmp/petget_proc/pkgs_to_install)" = "" ] && exit 0 cat /tmp/petget_proc/pkgs_to_install | tr ' ' '\n' > /tmp/petget_proc/pkgs_left_to_install rm -f /tmp/petget_proc/overall_package_status_log echo 0 > /tmp/petget_proc/petget/install_status_percent echo "$(gettext "Calculating total required space...")" > /tmp/petget_proc/petget/install_status [ ! -f /root/.packages/skip_space_check ] && check_total_size #status_bar_func & #----------- while IFS="|" read TREE1 REPO zz #TREE1|REPO do [ -z "$TREE1" ] && continue echo "$REPO" > /tmp/petget_proc/petget/current-repo-triad if [ -f /tmp/petget_proc/install_quietly ];then if [ "$(grep $TREE1 /root/.packages/user-installed-packages 2>/dev/null)" = "" \ -a -f /tmp/petget_proc/install_pets_quietly ]; then if [ "$(cat /var/local/petget/nt_category 2>/dev/null)" = "true" ]; then /usr/local/petget/installpreview.sh else rxvt -title "$VTTITLE... $(gettext 'Do NOT close')" \ -fn -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-*-* -bg black \ -fg grey -geometry 80x5+50+50 -e /usr/local/petget/installpreview.sh fi else if [ "$(cat /var/local/petget/nt_category 2>/dev/null)" = "true" ]; then /usr/local/petget/installpreview.sh else rxvt -title "$VTTITLE... $(gettext 'Do NOT close')" \ -fn -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-*-* -bg black \ -fg grey -geometry 80x5+50+50 -e /usr/local/petget/installpreview.sh fi fi else /usr/local/petget/installpreview.sh if [ $? -eq 100 ] ; then exit fi fi /usr/local/petget/finduserinstalledpkgs.sh #s243a: is this necessary? sed -i "/$TREE1/d" /tmp/petget_proc/pkgs_left_to_install done < /tmp/petget_proc/pkgs_to_install sync report_results clean_up } [ "$EXPORT_FNs" = true ] && export -f install_package do_install() { # Exit if called spuriously [ "$TREE1" = "" ] && exit 0 export ENTRY=$TREE1 pkg_info #pkg_info="$(cat /tmp/petget_proc/pkgs_to_install | cut -d '|' -f1,4)" #pkgs_to_install set in the pkg_info function echo "pkgs_to_install=$(cat /tmp/petget_proc/pkgs_to_install)" mv /tmp/petget_proc/pkgs_to_install /tmp/petget_proc/pkgs_to_install_1_5_10_11 cat /tmp/petget_proc/pkgs_to_install_1_5_10_11 | cut -d '|' -f1,4 > /tmp/petget_proc/pkgs_to_install echo "pkgs_to_install=$(cat /tmp/petget_proc/pkgs_to_install)" #-- Make sure that we have atleast one mode flag if [ ! -f /tmp/petget_proc/install_pets_quietly \ -a ! -f /tmp/petget_proc/download_only_pet_quietly \ -a ! -f /tmp/petget_proc/download_pets_quietly \ -a ! -f /tmp/petget_proc/install_classic ] ; then touch /tmp/petget_proc/install_classic #/tmp/petget_proc/install_pets_quietly fi #if [ "$(grep $TREE1 /root/.packages/user-installed-packages)" != "" ] ; then # . /usr/lib/gtkdialog/box_yesno "$(gettext 'Package is already installed')" "$(gettext 'This package is already installed! ')" "$(gettext 'If you want to re-install it, first remove it and then install it again. To download only or use the step-by-step classic mode, select No and then change the Auto Install to another option.')" "$(gettext 'To Abort the process now select Yes.')" # if [ "$EXIT" = "yes" ]; then # exit 0 # else # echo $TREE1 > /tmp/petget_proc/forced_install # fi #fi #-- if [ "$(cat /tmp/petget_proc/forced_install 2>/dev/null)" != "" ]; then touch /tmp/petget_proc/force_install else rm -f /tmp/petget_proc/force_install fi #cut -d"|" -f1,4 /tmp/petget_proc/pkgs_to_install > /tmp/petget_proc/pkgs_to_install_tmp #mv -f /tmp/petget_proc/pkgs_to_install_tmp /tmp/petget_proc/pkgs_to_install #if ! [ -f /tmp/petget_proc/force_install -a -f /tmp/petget_proc/install_pets_quietly ]; then #/usr/local/petget/installed_size_preview.sh "$NEWPACKAGE" ADD if [ "$USE_installmodes_sh" != false ]; then /usr/local/petget/installmodes.sh "$INSTALL_MODE" elif [ "$SKIP_installmodes_sh" != false ]; then install_package #This was taken from installmodes.sh else cat /tmp/petget_proc/pkgs_to_install | tr ' ' '\n' > /tmp/petget_proc/pkgs_left_to_install mv /tmp/petget_proc/pkgs_to_install /tmp/petget_proc/pkgs_to_install_1_5 cat /tmp/petget_proc/pkgs_to_install_1_5 | cut -d '|' -f1 > /tmp/petget_proc/pkgs_to_install echo "pkgs_to_install=$(cat /tmp/petget_proc/pkgs_to_install)" set +x export TREE1=${TREE1%%|*} /usr/local/petget/installpreview.sh fi } echo_pkg_info_fields_helper(){ [ $# -gt 0 ] && TREE1=$1 [ $# -gt 1 ] && TREE1="$TREE1|$2" local repo_triad local result if [ -f /tmp/petget_proc/petget/filterpkgs.results.post ]; then result="$(grep ^$TREE1 /tmp/petget_proc/petget/filterpkgs.results.post)" fi if [ -z $result ]; then pkg=$(echo $TREE1 | cut -f1 -d '|' ) #repo_triad=$(echo $TREE1 | cut -f2 -d) n_fields=$(echo "$TREE1" | awk -F "|" '{print NF}' | head -n 1) if [ $n_fields -gt 1 ]; then repo_triad=$(echo "$TREE1" | awk -F "|" '{print $NF}' | head -n 1) elif [ -f /tmp/petget_proc/petget ]; then repo_triad=$(cat /tmp/petget_proc/petget | head -n 1) fi result="$(grep -m1 ^$pkg /var/packages/Packages-$repo_triad | cut -f1,5,10,11)" fi echo "$result" } echo_pkg_info_fields(){ echo_pkg_info_fields_helper #TODO maybe look at all repos specified by the ppm or fallback repos. } #Taken from: https://github.com/puppylinux-woof-CE/woof-CE/blob/60d94862a3343bf0a062a0fcd0dd73475d6985ba/woof-code/rootfs-skeleton/usr/local/petget/pkg_chooser.sh#L120 # but modified to not depend on filterpkgs.results.post pkg_info() { # Exit if called spuriously [ "$TREE1" = "" ] && exit 0 #NEWPACKAGE="$(grep ^$TREE1 /tmp/petget_proc/petget/filterpkgs.results.post)" pkg=$(echo $TREE1 | cut -f1 -d '|' ) export ENTRY1=$pkg #used in findnames.sh /usr/local/petget/findnames.sh #We can remove this if we generage filterpkgs.results.post another way. See: postfilterpkgs.sh and installpreview.sh # rm -f /tmp/petget_proc/overall_* #/usr/local/petget/installed_size_preview.sh "$TREE1" ADD #installpreview.sh repo_triad=$(echo $TREE1 | cut -f2 -d '|' ) echo "$repo_triad" > /tmp/petget_proc/petget/current-repo-triad IFS="|" read PKG_NAME PKG_CAT PKG_DESC PKG_REPO < <(echo_pkg_info_fields ) ( echo "Name : $PKG_NAME" echo "Category: $PKG_CAT" echo "Desc : $PKG_DESC" echo "Repo : $repo_triad" #$PKG_REPO ) > /tmp/petget_proc/petget/pgk_info echo "$PKG_NAME|$PKG_CAT|$PKG_DESC|$repo_triad" >> /tmp/petget_proc/pkgs_to_install } #Taken from: https://github.com/puppylinux-woof-CE/woof-CE/blob/60d94862a3343bf0a062a0fcd0dd73475d6985ba/woof-code/rootfs-skeleton/usr/local/petget/installmodes.sh#L12 clean_up () { if [ "$(ls /tmp/petget_proc/*_pet{,s}_quietly /tmp/petget_proc/install_classic 2>/dev/null |wc -l)" -eq 1 ]; then for MODE in $(ls /tmp/petget_proc/*_pet{,s}_quietly /tmp/petget_proc/install_classic) do mv $MODE $MODE.bak done fi mv /tmp/petget_proc/install_quietly /tmp/petget_proc/install_quietly.bak echo -n > /tmp/petget_proc/pkgs_to_install rm -f /tmp/petget_proc/{install,remove}{,_pets}_quietly 2>/dev/null rm -f /tmp/petget_proc/install_classic 2>/dev/null rm -f /tmp/petget_proc/download_pets_quietly 2>/dev/null rm -f /tmp/petget_proc/download_only_pet_quietly 2>/dev/null rm -f /tmp/petget_proc/pkgs_left_to_install 2>/dev/null rm -f /tmp/petget_proc/pkgs_to_install_done 2>/dev/null rm -f /tmp/petget_proc/overall_pkg_size* 2>/dev/null rm -f /tmp/petget_proc/overall_dependencies 2>/dev/null rm -f /tmp/petget_proc/mode_changed 2>/dev/null rm -f /tmp/petget_proc/force*_install 2>/dev/null rm -f /tmp/petget_proc/pkgs_to_install_done 2>/dev/null rm -f /tmp/petget_proc/pgks_really_installed 2>/dev/null rm -f /tmp/petget_proc/pgks_failed_to_install 2>/dev/null rm -f /tmp/petget_proc/overall_petget_missingpkgs_patterns.txt 2>/dev/null rm -f /tmp/petget_proc/overall_missing_libs.txt 2>/dev/null rm -f /tmp/petget_proc/overall_install_report 2>/dev/null rm -f /tmp/petget_proc/pkgs_to_install_bar 2>/dev/null rm -f /tmp/petget_proc/manual_pkg_download 2>/dev/null rm -f /tmp/petget_proc/ppm_reporting 2>/dev/null rm -f /tmp/petget_proc/pkgs_DL_BAD_LIST 2>/dev/null rm -rf /tmp/petget_proc/PPM_LOGs/ 2>/dev/null mv $MODE.bak $MODE mv /tmp/petget_proc/install_quietly.bak /tmp/petget_proc/install_quietly } [ "$EXPORT_FNs" = true ] && export -f clean_up report_results () { # Info source files touch /tmp/petget_proc/ppm_reporting # progress bar flag /usr/local/petget/finduserinstalledpkgs.sh #make sure... sync rm -f /tmp/petget_proc/pgks_really_installed 2>/dev/null rm -f /tmp/petget_proc/pgks_failed_to_install 2>/dev/null for LINE in $(cat /tmp/petget_proc/pkgs_to_install_done | cut -f 1 -d '|' | sort | uniq) do [ "$(echo $LINE)" = "" ] && continue if [ -f /tmp/petget_proc/download_pets_quietly -o -f /tmp/petget_proc/download_only_pet_quietly \ -o -f /tmp/petget_proc/manual_pkg_download ];then if [ -f /root/.packages/download_path ];then . /root/.packages/download_path DOWN_PATH="$DL_PATH" else DOWN_PATH=$HOME fi PREVINST='' REALLY=$(ls "$DOWN_PATH" | grep $LINE) [ "$REALLY" -a "$(grep $LINE /tmp/petget_proc/pkgs_DL_BAD_LIST 2>/dev/null | sort | uniq )" != "" ] && \ REALLY='' && PREVINST="$(gettext 'was previously downloaded')" else PREVINST='' REALLY=$(grep $LINE /tmp/petget_proc/petget/installedpkgs.results) [ "$(grep $LINE /tmp/petget_proc/pgks_failed_to_install_forced 2>/dev/null | sort | uniq )" != "" -o \ "$(grep $LINE /tmp/petget_proc/pkgs_DL_BAD_LIST 2>/dev/null | sort | uniq )" != "" ] \ && REALLY='' && PREVINST="$(gettext 'was already installed')" fi if [ "$REALLY" != "" ]; then echo $LINE >> /tmp/petget_proc/pgks_really_installed else echo $LINE $PREVINST >> /tmp/petget_proc/pgks_failed_to_install fi done rm -f /tmp/petget_proc/pgks_failed_to_install_forced [ -f /tmp/petget_proc/pgks_really_installed ] && INSTALLED_PGKS="$(</tmp/petget_proc/pgks_really_installed)" \ || INSTALLED_PGKS='' [ -f /tmp/petget_proc/pgks_failed_to_install ] && FAILED_TO_INSTALL="$(</tmp/petget_proc/pgks_failed_to_install)" \ || FAILED_TO_INSTALL='' #MISSING_PKGS=$(cat /tmp/petget_proc/overall_petget_missingpkgs_patterns.txt |sort|uniq ) MISSING_LIBS=$(cat /tmp/petget_proc/overall_missing_libs.txt 2>/dev/null | tr ' ' '\n' | sort | uniq ) NOT_IN_PATH_LIBS=$(cat /tmp/petget_proc/overall_missing_libs_hidden.txt 2>/dev/null | tr ' ' '\n' | sort | uniq ) cat << EOF > /tmp/petget_proc/overall_install_report Packages succesfully Installed or Downloaded $INSTALLED_PGKS Packages that failed to be Installed or Downloaded, or were aborted be the user $FAILED_TO_INSTALL Missing Shared Libraries $MISSING_LIBS Existing Libraries that may be in a location other than /lib and /usr/lib $NOT_IN_PATH_LIBS EOF # Info window/dialogue (display and option to save "missing" info) if [ "$MISSING_LIBS" ];then MISSINGMSG1="<i><b>$(gettext 'These libraries are missing:') ${MISSING_LIBS}</b></i>" LM=' <hbox space-expand="true" space-fill="true"> <hbox scrollable="true" hscrollbar-policy="2" vscrollbar-policy="2" space-expand="true" space-fill="true"> <hbox space-expand="false" space-fill="false"> <eventbox name="bg_report" space-expand="true" space-fill="true"> <vbox margin="5" hscrollbar-policy="2" vscrollbar-policy="2" space-expand="true" space-fill="true"> '"`/usr/lib/gtkdialog/xml_pixmap building_block.svg 32`"' <text angle="90" wrap="false" yalign="0" use-markup="true" space-expand="true" space-fill="true"><label>"<big><b><span color='"'#bbb'"'>'$(gettext 'Libs')'</span></b></big> "</label></text> </vbox> </eventbox> </hbox> <vbox scrollable="true" shadow-type="0" hscrollbar-policy="1" vscrollbar-policy="1" space-expand="true" space-fill="true"> <text ypad="5" xpad="5" yalign="0" xalign="0" use-markup="true" space-expand="true" space-fill="true"><label>"'${MISSINGMSG1}'"</label></text> </vbox> </hbox> </hbox>' fi if [ "$NOT_IN_PATH_LIBS" ];then #100830 MISSINGMSG1="<i><b>${MISSINGMSG1}</b></i> $(gettext 'These needed libraries exist but are not in the library search path (it is assumed that a startup script in the package makes these libraries loadable by the application):') <i><b>${NOT_IN_PATH_LIBS}</b></i>" fi if [ -s /tmp/petget_proc/petget-installed-pkgs-log ];then BUTTON_TRIM="<button><input file stock=\"gtk-execute\"></input><label>$(gettext 'Trim the fat')</label><action type=\"exit\">BUTTON_TRIM_FAT</action></button>" fi export REPORT_DIALOG=' <window title="'$(gettext 'Package Manager')'" icon-name="gtk-about" default_height="550"> <vbox> '"`/usr/lib/gtkdialog/xml_info fixed package_add.svg 60 " " "$(gettext "Package install/download report")"`"' <hbox space-expand="true" space-fill="true"> <hbox scrollable="true" hscrollbar-policy="2" vscrollbar-policy="2" space-expand="true" space-fill="true"> <hbox space-expand="false" space-fill="false"> <eventbox name="bg_report" space-expand="true" space-fill="true"> <vbox margin="5" hscrollbar-policy="2" vscrollbar-policy="2" space-expand="true" space-fill="true"> '"`/usr/lib/gtkdialog/xml_pixmap dialog-complete.svg 32`"' <text angle="90" wrap="false" yalign="0" use-markup="true" space-expand="true" space-fill="true"><label>"<big><b><span color='"'#15BC15'"'>'$(gettext 'Success')'</span></b></big> "</label></text> </vbox> </eventbox> </hbox> <vbox scrollable="true" shadow-type="0" hscrollbar-policy="2" vscrollbar-policy="1" space-expand="true" space-fill="true"> <text ypad="5" xpad="5" yalign="0" xalign="0" use-markup="true" space-expand="true" space-fill="true"><label>"<i><b>'${INSTALLED_PGKS}' </b></i>"</label></text> </vbox> </hbox> </hbox> <hbox space-expand="true" space-fill="true"> <hbox scrollable="true" hscrollbar-policy="2" vscrollbar-policy="2" space-expand="true" space-fill="true"> <hbox space-expand="false" space-fill="false"> <eventbox name="bg_report" space-expand="true" space-fill="true"> <vbox margin="5" hscrollbar-policy="2" vscrollbar-policy="2" space-expand="true" space-fill="true"> '"`/usr/lib/gtkdialog/xml_pixmap dialog-error.svg 32`"' <text angle="90" wrap="false" yalign="0" use-markup="true" space-expand="true" space-fill="true"><label>"<big><b><span color='"'#DB1B1B'"'>'$(gettext 'Failed')'</span></b></big> "</label></text> </vbox> </eventbox> </hbox> <vbox scrollable="true" shadow-type="0" hscrollbar-policy="2" vscrollbar-policy="1" space-expand="true" space-fill="true"> <text ypad="5" xpad="5" yalign="0" xalign="0" use-markup="true" space-expand="true" space-fill="true"><label>"<i><b>'${FAILED_TO_INSTALL}' </b></i>"</label></text> </vbox> </hbox> </hbox> '${LM}' <hbox space-expand="false" space-fill="false"> <button ok></button> <button> <label>'$(gettext 'View details')'</label> <input file stock="gtk-dialog-info"></input> <action>defaulttextviewer /tmp/petget_proc/overall_install_report &</action> </button> '${BUTTON_TRIM}' '"`/usr/lib/gtkdialog/xml_scalegrip`"' </hbox> </vbox> </window>' RETPARAMS="`gtkdialog --center -p REPORT_DIALOG`" eval "$RETPARAMS" echo 100 > /tmp/petget_proc/petget/install_status_percent #trim the fat... if [ "$EXIT" = "BUTTON_TRIM_FAT" ];then INSTALLEDPKGNAMES="`cat /tmp/petget_proc/petget-installed-pkgs-log | cut -f 2 -d ' ' | tr '\n' ' '`" #101013 improvement suggested by L18L... CURRLOCALES="`locale -a | grep _ | cut -d '_' -f 1`" LISTLOCALES="`echo -e -n "en\n${CURRLOCALES}" | sort -u | tr -s '\n' | tr '\n' ',' | sed -e 's%,$%%'`" export PPM_TRIM_DIALOG="<window title=\"$(gettext 'Puppy Package Manager')\" icon-name=\"gtk-about\" resizable=\"false\"> <vbox> <pixmap><input file>/usr/share/pixmaps/puppy/dialog-question.svg</input></pixmap> <text><label>$(gettext "You have chosen to 'trim the fat' of these installed packages:")</label></text> <text use-markup=\"true\"><label>\"<b>${INSTALLEDPKGNAMES}</b>\"</label></text> <frame Locale> <text><label>$(gettext 'Type the 2-letter country designations for the locales that you want to retain, separated by commas. Leave blank to retain all locale files (see /usr/share/locale for examples):')</label></text> <entry><default>${LISTLOCALES}</default><variable>ENTRY_LOCALE</variable></entry> </frame> <frame $(gettext 'Documentation')> <checkbox><default>true</default><label>$(gettext 'Tick this to delete documentation files')</label><variable>CHECK_DOCDEL</variable></checkbox> </frame> <frame $(gettext 'Development')> <checkbox><default>true</default><label>$(gettext 'Tick this to delete development files')</label><variable>CHECK_DEVDEL</variable></checkbox> <text><label>$(gettext '(only needed if these packages are required as dependencies when compiling another package from source code)')</label></text> </frame> <text><label>$(gettext "Click 'OK', or if you decide to chicken-out click 'Cancel':")</label></text> <hbox> <button ok></button> <button cancel></button> </hbox> </vbox> </window>" RETPARAMS="`gtkdialog -p PPM_TRIM_DIALOG`" eval "$RETPARAMS" [ "$EXIT" != "OK" ] && exit $EXITVAL if [ ! -f /tmp/petget_proc/install_quietly ]; then /usr/lib/gtkdialog/box_splash -text "$(gettext 'Please wait, trimming fat from packages...')" & X4PID=$! fi elPATTERN="`echo -n "$ENTRY_LOCALE" | tr ',' '\n' | sed -e 's%^%/%' -e 's%$%/%' | tr '\n' '|'`" for PKGNAME in $INSTALLEDPKGNAMES do ( cat /root/.packages/${PKGNAME}.files | while read ONEFILE do [ ! -f "$ONEFILE" ] && echo "$ONEFILE" && continue [ -h "$ONEFILE" ] && echo "$ONEFILE" && continue #find out if this is an international language file... if [ "$ENTRY_LOCALE" != "" ];then if [ "`echo -n "$ONEFILE" | grep --extended-regexp '/locale/|/nls/|/i18n/' | grep -v -E "$elPATTERN"`" != "" ];then rm -f "$ONEFILE" continue fi fi #find out if this is a documentation file... if [ "$CHECK_DOCDEL" = "true" ];then if [ "`echo -n "$ONEFILE" | grep --extended-regexp '/man/|/doc/|/doc-base/|/docs/|/info/|/gtk-doc/|/faq/|/manual/|/examples/|/help/|/htdocs/'`" != "" ];then rm -f "$ONEFILE" 2>/dev/null continue fi fi #find out if this is development file... if [ "$CHECK_DEVDEL" = "true" ];then if [ "`echo -n "$ONEFILE" | grep --extended-regexp '/include/|/pkgconfig/|/aclocal|/cvs/|/svn/'`" != "" ];then rm -f "$ONEFILE" 2>/dev/null continue fi #all .a and .la files... and any stray .m4 files... if [ "`echo -n "$ONEBASE" | grep --extended-regexp '\.a$|\.la$|\.m4$'`" != "" ];then rm -f "$ONEFILE" continue fi fi echo "$ONEFILE" done ) > /tmp/petget_proc/petget_pkgfiles_temp mv -f /tmp/petget_proc/petget_pkgfiles_temp /root/.packages/${PKGNAME}.files done [ "$X4PID" ] && kill $X4PID fi } [ "$EXPORT_FNs" = true ] && export -f report_results while read a_lib; do while read packages_db; do REPO_TRIAD=$(basename $packages_db) REPO_TRIAD=${REPO_TRIAD#Packages-} #todo MAYBE MAKE THIS MORE ROBUST for mode in 1 2; do case "$mode" in 1) provides_db="$(echo "$packages_db" | sed 's/^Packages-/^Provides-/')" a_lib="$(echo "$a_lib" | sed -r 's/^(.*)([.]so)(.*)$/\1\2/')" matches="$(grep -F $a_lib $provides_db)" ;; 2) pre_guess=$a_lib while [ 1 -eq 1 ]; do guess="$(echo "$pre_guess" | sed 's/[.]so[.]/-/')" guess="$(echo "$pre_guess" | sed 's/[.]so//')" matches="$(grep -F $guess $packages_db)" [ ! -z $matches ] && break 3 last_pre_guess="$pre_guess" pre_guess="$(echo "$pre_guess" | sed -r 's/(.*)(.so)(.*)[.][^.]*/\1\2\3/')" [ "$pre_guess" = "$last_pre_guess" ] && break done ;; esac if [ ! -z "$matches" ]; then #pkgs_to_install_s243a is two fields like at: https://github.com/puppylinux-woof-CE/woof-CE/blob/60d94862a3343bf0a062a0fcd0dd73475d6985ba/woof-code/rootfs-skeleton/usr/local/petget/pkg_chooser.sh#L159 echo "$matches" | cut -d '|' -f1 | \ sed -n -E '/^[[:space:]]*$/! {s%(.*)%\1|'$REPO_TRIAD'%;p}' >> /tmp/petget_proc/pkgs_to_install_s243a break fi done done < <(find /var/packages -name 'Packages-*') done < <(cat /tmp/petget_proc/missinglibs.txt | tr [[:space:]] "\n" ) while IFS= read line|| [ -n "$line" ]; do export TREE1=$line #echo $TREE1 > /tmp/petget_proc/forced_install do_install #Expects four fields done < /tmp/petget_proc/pkgs_to_install_s243a #export -f do_instal #pkg_info do_install change_mode
Optional Paste Settings
Category:
None
Cryptocurrency
Cybersecurity
Fixit
Food
Gaming
Haiku
Help
History
Housing
Jokes
Legal
Money
Movies
Music
Pets
Photo
Science
Software
Source Code
Spirit
Sports
Travel
TV
Writing
Tags:
Syntax Highlighting:
None
Bash
C
C#
C++
CSS
HTML
JSON
Java
JavaScript
Lua
Markdown (PRO members only)
Objective C
PHP
Perl
Python
Ruby
Swift
4CS
6502 ACME Cross Assembler
6502 Kick Assembler
6502 TASM/64TASS
ABAP
AIMMS
ALGOL 68
APT Sources
ARM
ASM (NASM)
ASP
ActionScript
ActionScript 3
Ada
Apache Log
AppleScript
Arduino
Asymptote
AutoIt
Autohotkey
Avisynth
Awk
BASCOM AVR
BNF
BOO
Bash
Basic4GL
Batch
BibTeX
Blitz Basic
Blitz3D
BlitzMax
BrainFuck
C
C (WinAPI)
C Intermediate Language
C for Macs
C#
C++
C++ (WinAPI)
C++ (with Qt extensions)
C: Loadrunner
CAD DCL
CAD Lisp
CFDG
CMake
COBOL
CSS
Ceylon
ChaiScript
Chapel
Clojure
Clone C
Clone C++
CoffeeScript
ColdFusion
Cuesheet
D
DCL
DCPU-16
DCS
DIV
DOT
Dart
Delphi
Delphi Prism (Oxygene)
Diff
E
ECMAScript
EPC
Easytrieve
Eiffel
Email
Erlang
Euphoria
F#
FO Language
Falcon
Filemaker
Formula One
Fortran
FreeBasic
FreeSWITCH
GAMBAS
GDB
GDScript
Game Maker
Genero
Genie
GetText
Go
Godot GLSL
Groovy
GwBasic
HQ9 Plus
HTML
HTML 5
Haskell
Haxe
HicEst
IDL
INI file
INTERCAL
IO
ISPF Panel Definition
Icon
Inno Script
J
JCL
JSON
Java
Java 5
JavaScript
Julia
KSP (Kontakt Script)
KiXtart
Kotlin
LDIF
LLVM
LOL Code
LScript
Latex
Liberty BASIC
Linden Scripting
Lisp
Loco Basic
Logtalk
Lotus Formulas
Lotus Script
Lua
M68000 Assembler
MIX Assembler
MK-61/52
MPASM
MXML
MagikSF
Make
MapBasic
Markdown (PRO members only)
MatLab
Mercury
MetaPost
Modula 2
Modula 3
Motorola 68000 HiSoft Dev
MySQL
Nagios
NetRexx
Nginx
Nim
NullSoft Installer
OCaml
OCaml Brief
Oberon 2
Objeck Programming Langua
Objective C
Octave
Open Object Rexx
OpenBSD PACKET FILTER
OpenGL Shading
Openoffice BASIC
Oracle 11
Oracle 8
Oz
PARI/GP
PCRE
PHP
PHP Brief
PL/I
PL/SQL
POV-Ray
ParaSail
Pascal
Pawn
Per
Perl
Perl 6
Phix
Pic 16
Pike
Pixel Bender
PostScript
PostgreSQL
PowerBuilder
PowerShell
ProFTPd
Progress
Prolog
Properties
ProvideX
Puppet
PureBasic
PyCon
Python
Python for S60
QBasic
QML
R
RBScript
REBOL
REG
RPM Spec
Racket
Rails
Rexx
Robots
Roff Manpage
Ruby
Ruby Gnuplot
Rust
SAS
SCL
SPARK
SPARQL
SQF
SQL
SSH Config
Scala
Scheme
Scilab
SdlBasic
Smalltalk
Smarty
StandardML
StoneScript
SuperCollider
Swift
SystemVerilog
T-SQL
TCL
TeXgraph
Tera Term
TypeScript
TypoScript
UPC
Unicon
UnrealScript
Urbi
VB.NET
VBScript
VHDL
VIM
Vala
Vedit
VeriLog
Visual Pro Log
VisualBasic
VisualFoxPro
WHOIS
WhiteSpace
Winbatch
XBasic
XML
XPP
Xojo
Xorg Config
YAML
YARA
Z80 Assembler
ZXBasic
autoconf
jQuery
mIRC
newLISP
q/kdb+
thinBasic
Paste Expiration:
Never
Burn after read
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Paste Exposure:
Public
Unlisted
Private
Folder:
(members only)
Password
NEW
Enabled
Disabled
Burn after read
NEW
Paste Name / Title:
Create New Paste
Hello
Guest
Sign Up
or
Login
Sign in with Facebook
Sign in with Twitter
Sign in with Google
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Public Pastes
⭐⭐ Crypto Swap Glitch ✅ Easy money ⭐⭐
JavaScript | 5 min ago | 0.67 KB
⭐⭐ Free Crypto Method ⭐⭐ ✅
JavaScript | 15 min ago | 0.67 KB
Nano_button_led_hc05
C++ | 23 min ago | 1.50 KB
Infinite Money Glitch
JavaScript | 25 min ago | 0.67 KB
🔥🔥🔥 Swapzone Trading Glitch 🔥🔥🔥
JavaScript | 35 min ago | 0.67 KB
⭐⭐ Instant Money Method ⭐⭐ ✅
JavaScript | 46 min ago | 0.67 KB
⭐⭐ FREE BTC GUIDE ✅ Working ⭐⭐
JavaScript | 56 min ago | 0.67 KB
VanillaAmmoCraftsRecipes.json
JSON | 59 min ago | 78.72 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the
Cookies Policy
.
OK, I Understand
Not a member of Pastebin yet?
Sign Up
, it unlocks many cool features!