[Fli4l_dev] Download-Batch für Tarballs
Mark Gerber
mark.gerber at web.de
Fr Jul 18 19:07:29 CEST 2014
Hallo Viel-Ausprobierer!
Seitdem die Tarballs (testing, FFL-506) nicht mehr auf ftp-Servern liegen,
funktioniert das bisherige Download-Batch nicht mehr. Irgendwo habe ich
zwar mal zwischen den Zeilen gelesen, dass da ein Ersatz in Arbeit sei.
Jedoch bin ich ungeduldig (manuelles Herunterladen und entpacken - ih!)
und bastele außerdem selber gerne Batches, um mir die Arbeit zu
erleichtern.
Deswegen ist nun eine Windows-Batchdatei entstanden, die die gewünschten
fli4l-Pakete der definierten Geschmacksrichtung (testing/FFL-506,
x86/x86_64) von tarball.fli4l.de herunterlädt und entpackt. Verwendet
werden dafür wget und 7-Zip (Befehlszeilenversion). Was man so braucht und
was definiert werden muss, steht am Anfang der Batchdatei. Und dann:
Einfach ausführen. :)
Leider weiß ich keinen besseren Weg, als die Zeilen hier im Text zu posten
(NGs mögen keine Anhänge). Also...
--- ANFANG (GetLatestDevTarball.cmd) ---
@echo off
setlocal enabledelayedexpansion
rem ~~~ INFO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rem fli4l Development Tarball Downloader V1.0.0 (2014-07-15)
rem by Mark Gerber (mark.gerber at web.de)
rem Needed additional files in local directory:
rem - mypackages.txt
rem Contains the names of the additional packages
rem besides the fli4l base and doc packages:
rem * one per line
rem * no file name extensions (omit .tar.gz)
rem * possible subdirectories as prefix
rem * Example lines:
rem chrony
rem dhcp_client
rem non_gpl/kernel_3_15_nonfree
rem opt_db/cpmvrmlog
rem For available package names, see the tarball download pages on:
rem http://www.fli4l.de
rem - wget.exe (wget download tool)
rem Links to binaries for Windows:
rem http://wget.addictivecode.org/FrequentlyAskedQuestions#download
rem - 7za.exe (7-Zip command line version)
rem or
rem 7z.exe + 7z.dll (command line files from 7-Zip installation)
rem http://www.7-zip.org
rem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rem ~~~ USER SETTINGS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rem Adjust the following two settings if needed.
rem Regard uppercase and lowercase letters.
rem Development branch: testing or FFL-506
set Branch=testing
rem Processor architecture: x86 or x86_64
set Archi=x86
rem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rem Some initializations and checks
rem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
title fli4l Downloader
cls
cd /d %~dp0
if exist TarTemp rmdir /s /q TarTemp
if not exist wget.exe goto :NoWget
if not exist mypackages.txt goto :NoMyPack
set SevZip=7za.exe
if not exist %SevZip% (
set SevZip=7z.exe
for %%z in (!SevZip!,7z.dll) do if not exist %%z goto :No7z
)
set Host=tarball.fli4l.de
echo Checking connection to host %Host%...
ping -n 1 %Host% | find "TTL=" > nul
if errorlevel 1 goto :NoConnection
echo OK
echo.
if %Branch%==testing (
set RemotePath=testing
) else (
if %Branch%==FFL-506 set RemotePath=ffl506
)
if "%RemotePath%"=="" goto :BranchError
if not %Archi%==x86 (
if not %Archi%==x86_64 goto :ArchiError
)
set RemotePath=%RemotePath%-%Archi%
set WgetLine=wget.exe --quiet --timestamping %Host%/%RemotePath%
%WgetLine%/filelist.txt
for /f "tokens=3 delims=-" %%r in (filelist.txt) do set Rev=%%r
for /f %%f in (mypackages.txt) do (
set CurrPackFound=no
for /f %%g in (filelist.txt) do (
if "%%f.tar.gz"=="%%g" set CurrPackFound=yes
)
if not "!CurrPackFound!"=="yes" (
set FaultyPackDef=%%f
goto :MyPackError
)
)
del filelist.txt
echo Used branch: %Branch%
echo Used architecture: %Archi%
echo Found revision: %Rev%
rem ~~~~~~~~
rem Download
rem ~~~~~~~~
echo.
echo Downloading packages...
ping -n 2 127.0.0.1 > nul
set ReposDir=Packages_%Rev%-%Branch%-%Archi%
if exist %ReposDir% (
echo NOTE: The local packages repository for %Rev%-%Branch%-%Archi%
already exists.
echo Going through mypackages list and downloading only new packages...
ping -n 6 127.0.0.1 > nul
) else (
md %ReposDir%
)
cd %ReposDir%
echo - fli4l-3.9.0-%Rev%-%Branch%
..\%WgetLine%/fli4l-3.9.0-%Rev%-%Branch%.tar.gz
if errorlevel 1 goto :DownloadError
echo - fli4l-3.9.0-%Rev%-%Branch%-doc
..\%WgetLine%/fli4l-3.9.0-%Rev%-%Branch%-doc.tar.gz
if errorlevel 1 goto :DownloadError
for /f %%p in (..\mypackages.txt) do (
echo - %%p
..\%WgetLine%/%%p.tar.gz
if errorlevel 1 goto :DownloadError
)
cd ..
rem ~~~~~~
rem Unpack
rem ~~~~~~
echo.
echo Unpacking...
if exist fli4l-3.9.0-%Rev%-%Branch% (
echo NOTE: The working files of fli4l-3.9.0-%Rev%-%Branch% already exist.
choice /c os /n /m "[S]kip unpacking or [O]verwrite files (while backing
up config directory)?"
if errorlevel 2 goto :TheEnd
echo Renaming current config directory to config.bak...
ren fli4l-3.9.0-%Rev%-%Branch%\config config.bak
)
echo * 1st stage (all gzip packages at once)...
%SevZip% x -oTarTemp %ReposDir%\*.tar.gz > nul
echo * 2nd stage (each tar package)...
echo - fli4l-3.9.0-%Rev%-%Branch%
%SevZip% x -aoa TarTemp\fli4l-3.9.0-%Rev%-%Branch%.tar > nul
for /r TarTemp\ %%p in (*.tar) do (
if not "%%~np%%~xp"=="fli4l-3.9.0-%Rev%-%Branch%.tar" (
echo - %%~np
%SevZip% x -aoa -ofli4l-3.9.0-%Rev%-%Branch%\ %%p > nul
)
)
rmdir /s /q TarTemp
echo.
echo Finished^^!
goto :TheEnd
rem ~~~~~~~~~~~~~~
rem Error messages
rem ~~~~~~~~~~~~~~
:NoWget
echo The wget tool for downloading (wget.exe) is missing.
echo Procedure aborted.
goto :TheEnd
:NoMyPack
echo The list of packages to be downloaded (mypackages.txt) is missing.
echo Procedure aborted.
goto :TheEnd
:No7z
echo The 7-zip tool for unpacking (7za.exe or 7z.exe + 7z.dll) is missing.
echo Procedure aborted.
goto :TheEnd
:NoConnection
echo Connection could not be established.
echo Procedure aborted.
goto :TheEnd
:BranchError
echo An unknown fli4l branch (%Branch%) is set in the batch file.
echo Procedure aborted.
goto :TheEnd
:ArchiError
echo An unknown processor architecture (%Archi%) is set in the batch file.
echo Procedure aborted.
goto :TheEnd
:MyPackError
echo An unknown package is indicated in the mypackages.txt file:
echo %FaultyPackDef%
echo Procedure aborted.
goto :TheEnd
:DownloadError
echo The last indicated package could not be downloaded.
echo Procedure aborted.
goto :TheEnd
rem ~~~~~~~
rem The End
rem ~~~~~~~
:TheEnd
echo.
echo Press a key to close the window...
pause > nul
exit
--- ENDE (GetLatestDevTarball.cmd) ---
Viel Erfolg und Spaß - mit der Batchdatei und mit den Tarballs.
Mark
Mehr Informationen über die Mailingliste Fli4l_dev