summaryrefslogtreecommitdiffstats
path: root/files/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'files/scripts')
-rwxr-xr-xfiles/scripts/create-filelist10
-rwxr-xr-xfiles/scripts/update-fullfiletimelist19
2 files changed, 26 insertions, 3 deletions
diff --git a/files/scripts/create-filelist b/files/scripts/create-filelist
index eeba9d089..8fc336736 100755
--- a/files/scripts/create-filelist
+++ b/files/scripts/create-filelist
@@ -57,7 +57,9 @@ def recursedir(path='.', skip=[], alwaysskip=['.~tmp~']):
def parseopts():
null = open(os.devnull, 'w')
p = argparse.ArgumentParser(
- description='Generate a list of files and times, suitable for consumption by quick-fedora-mirror.')
+ description='Generate a list of files and times, suitable for consumption by quick-fedora-mirror, '
+ 'and a much smaller list with packages, Device Tree boot files, HTML files and '
+ 'directories filtered out, for consumption by fedfind.')
p.add_argument('-c', '--checksum', action='store_true',
help='Include checksums of all repomd.xml files in the file list.')
p.add_argument('-C', '--checksum-file', action='append', dest='checksum_files',
@@ -73,6 +75,8 @@ def parseopts():
help='Filename of the file list with times (default: stdout).')
p.add_argument('-f', '--filelist', type=argparse.FileType('w'), default=null,
help='Filename of the file list without times (default: no plain file list is generated).')
+ p.add_argument('-F', '--filterlist', type=argparse.FileType('w'), default=null,
+ help='Filename of the filtered file list for fedfind (default: not generated).')
opts = p.parse_args()
@@ -107,6 +111,10 @@ def main():
for entry in recursedir(skip=opts.skip_files):
# opts.filelist.write(entry.path + '\n')
print(entry.path, file=opts.filelist)
+ # write to filtered list if appropriate
+ skips = ('.rpm', '.drpm', '.dtb', '.html')
+ if not any(entry.path.endswith(skip) for skip in skips) and not (entry.is_dir()):
+ print(entry.path, file=opts.filterlist)
if entry.name in opts.checksum_files:
checksums[entry.path[2:]] = True
info = entry.stat(follow_symlinks=False)
diff --git a/files/scripts/update-fullfiletimelist b/files/scripts/update-fullfiletimelist
index 016ca8ed6..f6c225a3e 100755
--- a/files/scripts/update-fullfiletimelist
+++ b/files/scripts/update-fullfiletimelist
@@ -25,6 +25,7 @@ CREATE=/usr/local/bin/create-filelist
# context.
FILELIST=fullfilelist
TIMELIST='fullfiletimelist-$mod'
+FILTERLIST='filterlist-$mod'
usage () {
echo
@@ -107,12 +108,14 @@ cd $tmpd
for mod in $MODS; do
currentfl=$TOPD/$mod/${FILELIST/'$mod'/$mod}
currenttl=$TOPD/$mod/${TIMELIST/'$mod'/$mod}
+ currentsl=$TOPD/$mod/${FILTERLIST/'$mod'/$mod}
flname=$(basename $currentfl)
tlname=$(basename $currenttl)
+ slname=$(basename $currentsl)
- $CREATE -c -s -d $TOPD/$mod -f $flname -t $tlname
+ $CREATE -c -s -d $TOPD/$mod -f $flname -t $tlname -F $slname
- # If a file list exsts and doesn't differ from what we just generated,
+ # If a file list exists and doesn't differ from what we just generated,
# delete the latter.
if [[ -f $currentfl ]] && diff -q $currentfl $flname > /dev/null; then
rm -f $flname
@@ -120,6 +123,9 @@ cd $tmpd
if [[ -f $currenttl ]] && diff -q $currenttl $tlname > /dev/null; then
rm -f $tlname
fi
+ if [[ -f $currentsl ]] && diff -q $currentsl $slname > /dev/null; then
+ rm -f $slname
+ fi
done
# Now we have the new file lists but in a temporary directory which
@@ -128,10 +134,13 @@ cd $tmpd
for mod in $MODS; do
currentfl=$TOPD/$mod/${FILELIST/'$mod'/$mod}
currenttl=$TOPD/$mod/${TIMELIST/'$mod'/$mod}
+ currentsl=$TOPD/$mod/${FILTERLIST/'$mod'/$mod}
flname=$(basename $currentfl)
fldir=$(dirname $currentfl)
tlname=$(basename $currenttl)
tldir=$(dirname $currenttl)
+ slname=$(basename $currentsl)
+ sldir=$(dirname $currentsl)
if [[ -f $flname ]]; then
tmpf=$(mktemp -p $fldir $flname.XXXXXXXXXX)
@@ -145,6 +154,12 @@ cd $tmpd
chmod 644 $tmpf
mv $tmpf $currenttl
fi
+ if [[ -f $slname ]]; then
+ tmpf=$(mktemp -p $sldir $slname.XXXXXXXXXX)
+ cp -p $slname $tmpf
+ chmod 644 $tmpf
+ mv $tmpf $currentsl
+ fi
done
) 9>$LOCKFILE