Compare commits

...

4 Commits
2.0 ... master

10 changed files with 160 additions and 17 deletions

6
.env
View File

@ -2,12 +2,12 @@
# Repository generator
# Version of image
RepoVers=1
RepoVers=2
# Centos Version
#CentOsVersion=centos:7.9.2009
CentOsVersion=oraclelinux:8.6
CentOsVersion=oraclelinux:8.7
Cible=oraclelinux
VersionCible=8.6
VersionCible=8.7
PackageManager=dnf
# Sync repo script
Run=/usr/local/bin/sync.sh

1
.gitignore vendored
View File

@ -2,4 +2,5 @@ Dockerfile
data/
docker-compose.yml
cible
images

View File

@ -18,7 +18,7 @@ RUN ${PackageManager} install screen -y
#COPY ./bin/repo.sh /usr/local/bin/repo.sh
COPY ./bin/ /usr/local/bin/
#RUN chmod 755 /usr/local/bin/repo.sh
RUN chmod 755 /usr/local/bin/*
RUN chmod -R 755 /usr/local/bin/
#COPY ./bin/empty.sh /usr/local/bin/empty.sh
#RUN chmod 755 /usr/local/bin/empty.sh

View File

@ -19,7 +19,7 @@ RUN ${PackageManager} install screen -y
RUN echo COPY
COPY ./bin/ /usr/local/bin/
#RUN chmod 755 /usr/local/bin/repo.sh
RUN chmod 755 /usr/local/bin/*
RUN chmod -R 755 /usr/local/bin/
#COPY ./bin/empty.sh /usr/local/bin/empty.sh
#RUN chmod 755 /usr/local/bin/empty.sh

View File

@ -1,3 +1,4 @@
#!/bin/bash
TestEnv() {
Check=$(which $1 2> /dev/null)
@ -34,7 +35,7 @@ LinkESL() {
help () {
echo "
$0 [image-gen/image-repo/link/repo/gen/run-repo/run-gen]
$0 [image-gen/image-repo/link/repo/gen/run-repo/run-gen/import-image/save-image]
* $(tput setaf 3)image-gen $(tput sgr0): Generate docker image for esl compilator
* $(tput setaf 3)image-repo $(tput sgr0): Generate docker image for repository sync
@ -43,6 +44,8 @@ $0 [image-gen/image-repo/link/repo/gen/run-repo/run-gen]
* $(tput setaf 4)gen $(tput sgr0): start docker compose and generarte esl
* $(tput setaf 2)run-gen $(tput sgr0): Connect and run bash on instance gen
* $(tput setaf 2)run-repo $(tput sgr0): Connect and run bash on instance repo
* $(tput setaf 6)import-image $(tput sgr0): Import last backuped docker image in ./images/
* $(tput setaf 6)save-image $(tput sgr0): backup docker image in ./images/
"
exit
@ -147,6 +150,36 @@ DockerComposeRun () {
}
DockerSave () {
for Image in $(docker image ls | grep -E "^esl-repo|^esl-gen" | awk '{print $1":"$2}')
do
EslImage=$(echo $Image | cut -d":" -f1)
EslImageVersion=$(echo $Image | cut -d":" -f2)
echo -ne "Save $Image : "
docker save $Image | gzip > $(dirname $0)/images/${EslImageVersion}-$(date +%Y%m%d)_$(echo $Image | sed 's/:/-/g').gz
[[ "$?" -eq 0 ]] && echo OK || echo FAILED
done
}
DockerImport () {
if [[ $(ls -1 images | grep "esl-"| wc -l) -eq 0 ]]
then
echo "Nothing todo ..."
else
for Type in repo gen
do
GetImage=$(ls -1 images | grep $Type |sort -r -n -t"-" -k1,2 | head -n1)
echo -ne "Import $GetImage : "
zcat images/$GetImage | docker load &> /dev/null
[[ "$?" -eq 0 ]] && echo OK || echo FAILED
done
fi
}
#GenAll () {
# DockerGen gen

View File

@ -25,6 +25,14 @@ RunScreen (){
}
LinkEpel() {
[[ ! -L $2 ]] && ln -s ol${Majeur}_developer_EPEL x86_64
}
function oraclelinux () {
Rand=repo${RANDOM}
@ -36,7 +44,7 @@ function oraclelinux () {
RunScreen EPEL dnf reposync -g --newest-only --exclude='*.src' -p /data/repo/EPEL/ol${Majeur} --download-metadata --repoid=ol${Majeur}_developer_EPEL
Download /data/repo/EPEL/ EPEL
Action "Get in ${osversion} EPEL" cd /data/repo/EPEL/ol${Majeur}
Action "Link SeaNaps environement EPEL" ln -s ol${Majeur}_developer_EPEL x86_64
Action "Link SeaNaps environement EPEL" LinkEpel ol${Majeur}_developer_EPEL x86_64

80
create-tag-repo.sh Executable file
View File

@ -0,0 +1,80 @@
#!/bin/bash
# Print help and exit
usage(){
echo "-- $0 --"
echo "Freeze package environement in distributions. Create a 'fake' repository with real repodata but symbolic link of rpms"
echo "$0 OrigDir/repmod.xml BaseRepoDir DestDistributionBasenaemeDir"
exit
}
# Print the first arguement, execute the rest of the arguements and print the result OK/FAILED
action(){
echo -ne "${1} : "
shift
$@ &> /tmp/aaa
[[ $? -eq 0 ]] && echo -e '\033[0;32mOK\033[0m' || echo -e '\033[0;31mFAILED\033[0m'
}
# Create tree structure of the repository in the destination directory
CreateEnv(){
CptErr=0
[[ ! -d ${DirDest} ]] && mkdir -p ${DirDest} || true
CptErr=$((CptErr + $?))
for Dir in $(find -L $OrigBaseRepo -type d| sed "s#${OrigBaseRepo}##g")
do
[[ ! -d ${DirDest}/${Dir} ]] && mkdir -p ${DirDest}/${Dir} || true
CptErr=$((CptErr + $?))
done
CptErr=$((CptErr + $?))
return $CptErr
}
# for each rpm in the (get)Package directory, create a symbolic link in the destination directory
RpmLink(){
CptErr=0
for Rpm in $(find -L $OrigBaseRepo -type f -name "*.rpm" | sed "s#${OrigBaseRepo}##g")
do
[[ ! -L ${DirDest}/${Rpm} ]] && ln -s ${OrigBaseRepo}${Rpm} ${DirDest}/${Rpm} || true
CptErr=$((CptErr + $?))
done
return $CptErr
}
# Copy repodata files in the destination directory
RepoModCopy(){
cp -vf $(dirname ${RepModFile})/* $(dirname $(echo ${RepModFile}| sed "s#${BaseDirDestRepo}#${DestDir}#g"))/.
CptErr=$((CptErr + $?))
return $?
}
# Check all arguments and create variable environement for readability
CheckArg(){
[[ ! -f ${1} ]] && usage
RepModFile=${1}
[[ ! -d ${2} ]] && usage
BaseDirDestRepo=${2}
DestDir=${3}/distributions/
DirDest=$(echo $(dirname $(dirname ${RepModFile})) | sed "s#${BaseDirDestRepo}#${DestDir}#g")
OrigBaseRepo=$(echo $(dirname $(dirname ${RepModFile})))
}
# Main
CheckArg ${1} ${2} ${3}
echo "
###############################################
RepModFile = ${1}
BaseDirDestRepo = ${2}
DestDir = ${3}
###############################################"
# Execute
action "Create dest environement" CreateEnv ${RepModFile} ${BaseDirDestRepo} ${DestDir}
action "Link Rpm" RpmLink ${RepModFile} ${BaseDirDestRepo} ${DestDir}
action "Copy repo data" RepoModCopy ${RepModFile} ${BaseDirDestRepo} ${DestDir}

View File

@ -15,16 +15,35 @@ cd ${Wai}
Exec=$1
[[ -z "${Exec}" ]] && help
[[ "${Exec}" == "image" ]] && GenAll
[[ "${Exec}" == "image-gen" ]] && DockerGen gen
[[ "${Exec}" == "image-repo" ]] && DockerGen repo
[[ "${Exec}" == "link" ]] && LinkESL
[[ "${Exec}" == "repo" ]] && DockerComposeRun repo
[[ "${Exec}" == "stop" ]] && DockerStop
[[ "${Exec}" == "gen" ]] && DockerComposeRun gen
[[ "${Exec}" == "run-gen" ]] && DockerConnect gen $2
[[ "${Exec}" == "run-repo" ]] && DockerConnect repo $2
[[ "${Exec}" == "ps" ]] && DockerPs
#[[ "${Exec}" == "image" ]] && GenAll
#[[ "${Exec}" == "image-gen" ]] && DockerGen gen
#[[ "${Exec}" == "image-repo" ]] && DockerGen repo
#[[ "${Exec}" == "link" ]] && LinkESL
#[[ "${Exec}" == "repo" ]] && DockerComposeRun repo
#[[ "${Exec}" == "stop" ]] && DockerStop
#[[ "${Exec}" == "gen" ]] && DockerComposeRun gen
#[[ "${Exec}" == "run-gen" ]] && DockerConnect gen $2
#[[ "${Exec}" == "run-repo" ]] && DockerConnect repo $2
#[[ "${Exec}" == "import-image" ]] && DockerImport
#[[ "${Exec}" == "save-image" ]] && DockerSave
#
case $Exec in
image-gen) DockerGen gen;;
image-repo) DockerGen repo;;
repo) DockerComposeRun repo;;
stop) DockerStop;;
gen) DockerComposeRun gen ;;
link) LinkESL;;
run-gen) DockerConnect gen $2;;
run-repo) DockerConnect repo $2;;
import-image) DockerImport;;
save-image) DockerSave;;
*) help
esac
if [[ "${Exec}" == "all" ]]

0
images/.gitkeep Normal file
View File

2
readme Normal file
View File

@ -0,0 +1,2 @@
delete-alsa-utils failed
66 install hde ?