#!/bin/bash # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/.
# # Code shared by update packaging scripts. # Author: Darin Fisher # # In here to use the local common.sh to allow the full mars to have unfiltered files
# ----------------------------------------------------------------------------- # By default just assume that these tools exist on our path
MAR=${MAR:-mar}
XZ=${XZ:-xz}
MBSDIFF=${MBSDIFF:-mbsdiff}
if [ -x "$reference" ]; then
chmod 0755 "$target" else
chmod 0644 "$target" fi
}
make_add_instruction() {
f="$1"
filev2="$2" # The third param will be an empty string when a file add instruction is only # needed in the version 2 manifest. This only happens when the file has an # add-if-not instruction in the version 3 manifest. This is due to the # precomplete file prior to the version 3 manifest having a remove instruction # for this file so the file is removed before applying a complete update.
filev3="$3"
# Used to log to the console if [ $4 ]; then
forced=" (forced)" else
forced= fi
is_extension=$(echo"$f" | grep -c 'distribution/extensions/.*/') if [ $is_extension = "1" ]; then # Use the subdirectory of the extensions folder as the file to test # before performing this add instruction.
testdir=$(echo"$f" | sed 's/\(.*distribution\/extensions\/[^\/]*\)\/.*/\1/')
notice " add-if \"$testdir\" \"$f\"" echo"add-if \"$testdir\" \"$f\"" >> $filev2 if [ ! $filev3 = "" ]; then echo"add-if \"$testdir\" \"$f\"" >> $filev3 fi else
notice " add \"$f\"$forced" echo"add \"$f\"" >> $filev2 if [ ! $filev3 = "" ]; then echo"add \"$f\"" >> $filev3 fi fi
}
if [ "$(basename "$add_if_not_file_chk")" = "update-settings.ini" ]; then ## "true" *giggle*
return 0; fi ## 'false'... because this is bash. Oh yay!
return 1;
}
if [ -f "$dir/removed-files" ]; then
listfile="$dir/removed-files" elif [ -f "$dir/Contents/Resources/removed-files" ]; then
listfile="$dir/Contents/Resources/removed-files" fi if [ -n "$listfile" ]; then # Map spaces to pipes so that we correctly handle filenames with spaces.
files=($(cat"$listfile" | tr " ""|" | sort -r))
num_files=${#files[*]} for ((i=0; $i<$num_files; i=$i+1)); do # Map pipes back to whitespace and remove carriage returns
f=$(echo ${files[$i]} | tr "|"" " | tr -d '\r') # Trim whitespace
f=$(echo $f) # Exclude blank lines. if [ -n "$f" ]; then # Exclude comments if [ ! $(echo"$f" | grep -c '^#') = 1 ]; then if [ $(echo"$f" | grep -c '\/$') = 1 ]; then
notice " rmdir \"$f\"" echo"rmdir \"$f\"" >> $filev2 echo"rmdir \"$f\"" >> $filev3 elif [ $(echo"$f" | grep -c '\/\*$') = 1 ]; then # Remove the *
f=$(echo"$f" | sed -e 's:\*$::')
notice " rmrfdir \"$f\"" echo"rmrfdir \"$f\"" >> $filev2 echo"rmrfdir \"$f\"" >> $filev3 else
notice " remove \"$f\"" echo"remove \"$f\"" >> $filev2 echo"remove \"$f\"" >> $filev3 fi fi fi done fi
}
# List all files in the current directory, stripping leading "./" # Pass a variable name and it will be filled as an array.
list_files() {
count=0
# Removed the exclusion cases here to allow for generation of testing mars
find . -type f \
| sed 's/\.\/\(.*\)/\1/' \
| sort -r > "$workdir/temp-filelist" while read file; do eval"${1}[$count]=\"$file\""
(( count++ )) done < "$workdir/temp-filelist" rm"$workdir/temp-filelist"
}
# List all directories in the current directory, stripping leading "./"
list_dirs() {
count=0
find . -type d \
! -name "." \
! -name ".." \
| sed 's/\.\/\(.*\)/\1/' \
| sort -r > "$workdir/temp-dirlist" while read dir; do eval"${1}[$count]=\"$dir\""
(( count++ )) done < "$workdir/temp-dirlist" rm"$workdir/temp-dirlist"
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.