Code Sample |
#!/bin/bash # # dsl_debs - Returns a list of all files in all deb # files in you home dir and the apt cache dir # # Revision: 1 # Date: 02/19/05 # Original Author: cbagger01 from the DSL forums # # Rev 1 - Removed leading . from dsl file listings and # removed .dsl from mydsl menu filename # # This script will grab all *.deb files located in your # "Home" directory, IE: the /home/username directory # It will also grab all *.deb files located in your apt # cache, IE: /var/cache/apt/archives # # Before running this script, you need to actually install # all of your Debian packages using 'dpkg -i' or # 'apt-get install' or a package manager like Synaptic. # Do NOT delete your leftover *.deb files or purge your # apt-cache until after you have finished running this # script. # # Disclaimer: # This script is just a file repackaging program that # can be used for simple Debian packages. It will not # perform post-extraction configuration that is done # by more sophisticated Debian packages. It also cannot # be used to upgrade packages from older versions # that are part of the DSL livecd base installation. # This script will not work if it is run under the 'root' effective # user ID which is 0 if [ "$EUID" -eq "0" ]; then echo "Do not use 'root' access to run this script. Aborting..." exit 1 fi # Start things out from the home directory so we won't get confused cd $HOME # Find all Debian packages in your home directory and grab the list of # files that are contained inside each package. Make sure that directory # names are not grabbed. Only file names will be added to the list. # Remove leading . character from the filename list. for i in $( ls $HOME/*.deb ); do dpkg -c $i | awk '{ print substr($6,2) }' \ | grep -v "\/$" done # Find all Debian packages in your apt cache directory and grab the list # of files that are contained inside each package. Make sure that # directory names are not grabbed. Only file names will be added to the # list. # Remove leading . character from the filename list. for i in $( ls /var/cache/apt/archives/*.deb ); do dpkg -c $i | awk '{ print substr($6,2) }' \ | grep -v "\/$" done exit 0 |
Code Sample |
#!/bin/bash # # dsl_from_list - given a list of files # # Revision: 1 # Date: 2007-01-25 # Original Author: cbagger01 from the DSL forums # # This script will not work if it is run under the 'root' effective # user ID which is 0 if [ "$EUID" -eq "0" ]; then echo "Do not use 'root' access to run this script. Aborting..." exit 1 fi # Clean up any leftover temp files if needed rm -rf /tmp/dsl_prompt.tmp rm /tmp/dsl_files.tmp InFile=$1 #see if we passed a file name if [ -z "$InFile" ] then #if there is no file, try stdin while read i do echo $i >> /tmp/dsl_files.tmp done else #if there is a file, use it. cat $InFile > /tmp/dsl_files.tmp fi # Start things out from the home directory so we won't get confused cd $HOME package_name= whiptail --clear --nocancel \ --inputbox "Enter the full name for your DSL package Example: rox.dsl " \ 20 74 2> /tmp/dsl_prompt.tmp package_name=`cat /tmp/dsl_prompt.tmp` rm -rf /tmp/dsl_prompt.tmp menu_name= whiptail --clear --nocancel \ --inputbox "Enter the myDSL menu name for your program Example: Rox Filer " \ 20 74 2> /tmp/dsl_prompt.tmp menu_name=`cat /tmp/dsl_prompt.tmp` rm -rf /tmp/dsl_prompt.tmp program_path= whiptail --clear --nocancel \ --inputbox "Enter the executable name for your program Example: /usr/bin/rox " \ 20 74 2> /tmp/dsl_prompt.tmp program_path=`cat /tmp/dsl_prompt.tmp` rm -rf /tmp/dsl_prompt.tmp # Create the mydsl menu directory mkdir /tmp/mydsl.menu # Strip the .dsl characters from the end of the mydsl menu filename menu_filename=`echo $package_name | sed "s/\.dsl//g"` echo "Menu File Name: $menu_filename" # Create the new mydsl menu item file echo "[exec] ("$menu_name") {"$program_path"}" > /tmp/mydsl.menu/$menu_filename # Add the mydsl menu file to the list of files that will be # included into the new new dsl package echo "/tmp/mydsl.menu/"$menu_filename >> /tmp/dsl_files.tmp # Create the new DSL package tar -zcvf $package_name -T /tmp/dsl_files.tmp -C / rm /tmp/dsl_files.tmp rm /tmp/mydsl.menu/$menu_filename rm -r /tmp/mydsl.menu exit 0 |
Code Sample |
#!/bin/bash touch /tmp/dsl_start_mark |
Code Sample |
#!/bin/bash # # dsl_source_build - Build a dsl file out of the differences # to your system from when you ran 'dsl_mark_start' # # Revision: 1 # Date: 2007-01-25 # Original Author: Felson from the DSL forums # # Fist get anything you DO NOT want in your dsl file onto the # system. Then run 'dsl_mark_start'. Install what you want into # the system, test, and remove any junk that was made that you # don't want in the dsl. Then run this script. # Need to move to the root directory cd / # Build a list of all files find /bin/ /dev/ /etc/ /lib/ /opt/ /sbin/ /sys/ /usr/ /var/ -print -newer /tmp/dsl_start_mark -type f 2> /dev/null find /bin/ /dev/ /etc/ /lib/ /opt/ /sbin/ /sys/ /usr/ /var/ -print -newer /tmp/dsl_start_mark -type l 2> /dev/null find /bin/ /dev/ /etc/ /lib/ /opt/ /sbin/ /sys/ /usr/ /var/ -print -newer /tmp/dsl_start_mark -type s 2> /dev/null find /bin/ /dev/ /etc/ /lib/ /opt/ /sbin/ /sys/ /usr/ /var/ -print -newer /tmp/dsl_start_mark -type p 2> /dev/null exit 0 |
Code Sample |
#!/bin/bash > /tmp/dsl_start_mark for i in $( find /bin/ /etc/ /lib/ /opt/ /sbin/ /sys/ /usr/ /var/ -print | sort | sed 's/ /\[sPaCe\]/g' ); do # echo $i File=`echo "$i" | sed 's/\[sPaCe\]/ /g'` if [ -d "$File" ]; then echo $File >> /tmp/dsl_start_mark elif [ -L "$File" ]; then LINK=`ls -l "$File" | awk '{print $11}'` DATE=`ls -l "$File" | awk '{print $6 " " $7 " " $8}'` echo $File "|$DATE|$LINK" >> /tmp/dsl_start_mark else MD5=`md5sum "$File" | awk '{print $1}'` DATE=`ls -l "$File" | awk '{print $6 " " $7 " " $8}'` echo $File "|$DATE|$MD5" >> /tmp/dsl_start_mark fi done exit 0 |
Code Sample |
#!/bin/bash > /tmp/dsl_end_mark for i in $( find /bin/ /etc/ /lib/ /opt/ /sbin/ /sys/ /usr/ /var/ -print | sort | sed 's/ /\[sPaCe\]/g' ); do # echo $i File=`echo "$i" | sed 's/\[sPaCe\]/ /g'` if [ -d "$File" ]; then echo $File >> /tmp/dsl_end_mark elif [ -L "$File" ]; then LINK=`ls -l "$File" | awk '{print $11}'` DATE=`ls -l "$File" | awk '{print $6 " " $7 " " $8}'` echo $File "|$DATE|$LINK" >> /tmp/dsl_end_mark else MD5=`md5sum "$File" | awk '{print $1}'` DATE=`ls -l "$File" | awk '{print $6 " " $7 " " $8}'` echo $File "|$DATE|$MD5" >> /tmp/dsl_end_mark fi done diff /tmp/dsl_end_mark /tmp/dsl_start_mark | grep "<" | awk '{print $2}' | awk -F\| '{print $1}' exit 0 |