New process using mount point

This commit is contained in:
thomas 2022-02-20 15:02:18 +01:00
parent 637a60c3bf
commit 5d14cf2985
18 changed files with 217 additions and 244 deletions

View File

@ -1,5 +1,5 @@
## DEBMAKER ## DEBMAKER
The main goal of this repository is allow to create application from source without install all compilation utility directly on the main system. The main goal of this repository is allow to create application from source without install compilation utility directly on the main system.
All package are install in folder in chroot environnement with only one script. All package are install in folder in chroot environnement with only one script.
### Requirement ### Requirement
@ -10,7 +10,7 @@ All package are install in folder in chroot environnement with only one script.
```bash ```bash
. vaultwarden2deb . vaultwarden2deb
allstep debmake_runAllStep
``` ```
### package are available without compilation ### package are available without compilation

View File

@ -1,9 +1,9 @@
#!/bin/bash #!/bin/bash
APP=element-web APP=element-web
VERSION=1.10.2 VERSION=1.10.4
GIT_VERSION=v$VERSION GIT_VERSION=v$VERSION
DEB_VERSION=$VERSION-2 DEB_VERSION=$VERSION-1
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
source ./lib/function.sh source ./lib/function.sh

View File

@ -5,6 +5,7 @@ VERSION=2.1.4
GIT_VERSION=v$VERSION GIT_VERSION=v$VERSION
DEB_VERSION=$VERSION-1 DEB_VERSION=$VERSION-1
DEBIAN_VERSION_CODENAME=bullseye DEBIAN_VERSION_CODENAME=bullseye
IMAGE_SIZE=4
source ./lib/function.sh source ./lib/function.sh

9
lib/exec_in_chroot.sh Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
if [ ! "$1" == "" ];
then
source /tmp/dist/$1
shift
FUNC=$1
shift
${FUNC} $*
fi

View File

@ -1,133 +1,108 @@
#!/bin/bash #!/bin/bash
source ressources/${APP}/${APP}
CACHE_APP=cache/${APP}/ CACHE_APP=cache/${APP}/
CACHE_STEP1=cache/${DEBIAN_VERSION_CODENAME} MOUNT_APP=/mnt/debmaker/${APP}/
CACHE_STEP2=cache/${APP}/envinit
CACHE_STEP3=cache/${APP}/prebuild
CACHE_STEP4=cache/${APP}/build
#DownloadOs [ -d ${CACHE_APP} ] || mkdir -p ${CACHE_APP}
step1() {
if [ ! -e ${CACHE_STEP1} ] ########################## SUB FUNCTION ##########################
valideStep(){
CURRENT_STEP=$1
RESULT=0
for tmp in ${STEP}
do
if [ $tmp == ${CURRENT_STEP} ] ; then
RESULT=1
break
fi
done
if [ $RESULT -eq 0 ]
then then
mkdir -p ${CACHE_STEP1}/proc echo invalid step
mount -t proc proc ${CACHE_STEP1}/proc fi
}
getSizeImage(){
[ "${IMAGE_SIZE}" == "" ] && IMAGE_SIZE=2
}
createImage(){
dd if=/dev/zero of=${CACHE_APP}/os bs=1G count=${IMAGE_SIZE}
sudo mkfs.ext4 ${CACHE_APP}/os
}
previousStep(){
CURRENT_STEP=$1
TMP_STEP=os;
for tmp in ${STEP}
do
PREV=${TMP_STEP}
TMP_STEP=$tmp
if [ $tmp == $CURRENT_STEP ] ; then
break
fi
done
echo $PREV
}
########################## FUNCTION ##########################
debmake_mountStep(){
CURRENT_STEP=$1
[ -d ${MOUNT_APP}/${CURRENT_STEP} ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}
sudo mount ${CACHE_APP}/${CURRENT_STEP} ${MOUNT_APP}/${CURRENT_STEP}
[ -d ${MOUNT_APP}/${CURRENT_STEP}/proc ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/proc
sudo mount -t proc proc ${MOUNT_APP}/${CURRENT_STEP}/proc
[ -d ${MOUNT_APP}/${CURRENT_STEP}/sys ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/sys
sudo mount -t sysfs sys ${MOUNT_APP}/${CURRENT_STEP}/sys
sleep 2 sleep 2
debootstrap ${DEBIAN_VERSION_CODENAME} ${CACHE_STEP1}
umount ${CACHE_STEP1}/proc
fi
} }
#InstallOs debmake_umountStep(){
step2(){ CURRENT_STEP=$1
if [ ! -e ${CACHE_STEP2} ] ; then sudo umount ${MOUNT_APP}/${CURRENT_STEP}/sys
mkdir -p ${CACHE_APP} sudo umount ${MOUNT_APP}/${CURRENT_STEP}/proc
cp -a ${CACHE_STEP1}/ ${CACHE_STEP2} sudo umount ${MOUNT_APP}/${CURRENT_STEP}
cp ressources/${APP}/${APP} ${CACHE_STEP2}/tmp/make
mount -t proc proc ${CACHE_STEP2}/proc
sleep 2
chroot ${CACHE_STEP2} /tmp/make envinit
umount ${CACHE_STEP2}/proc
rm ${CACHE_STEP2}/tmp/${APP}
fi
} }
#ConfigureBeforeBuild debmake_chrootStep(){
step3(){ CURRENT_STEP=$1
if [ ! -e ${CACHE_STEP3} ]; then debmake_mountStep ${CURRENT_STEP}
cp -a ${CACHE_STEP2} ${CACHE_STEP3} [ -d ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist/${APP} ] && sudo rm -rf ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist/
cp ressources/${APP}/${APP} ${CACHE_STEP3}/tmp/make sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist
chroot ${CACHE_STEP3} /tmp/make prebuild ${GIT_VERSION} sudo cp -fr ressources/${APP}/* ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist
rm ${CACHE_STEP3}/tmp/make sudo cp -fr lib/exec_in_chroot.sh ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist
fi shift
sudo chroot ${MOUNT_APP}${CURRENT_STEP}/ $*
find ${MOUNT_APP}${CURRENT_STEP}/tmp/dist/ -name *.deb -exec cp {} dist/ \;
debmake_umountStep ${CURRENT_STEP}
} }
#Build ########################## FUNCTION ##########################
step4(){
if [ ! -e ${CACHE_STEP4} ] ; then debmake_runStepOS() {
cp -a ${CACHE_STEP3} ${CACHE_STEP4} CURRENT_STEP=os
cp ressources/${APP}/${APP} ${CACHE_STEP4}/tmp/make getSizeImage
mount -t proc proc ${CACHE_STEP4}/proc/ createImage
sleep 2 debmake_mountStep ${CURRENT_STEP}
chroot ${CACHE_STEP4} /tmp/make build sudo debootstrap ${DEBIAN_VERSION_CODENAME} ${MOUNT_APP}/os/
umount ${CACHE_STEP4}/proc/ debmake_umountStep ${CURRENT_STEP}
rm ${CACHE_STEP4}/tmp/make
fi
} }
#PackageDeb debmake_runStepCustom() {
step5(){ CURRENT_STEP=$1
rm -fr dist/${APP} valideStep ${CURRENT_STEP}
mkdir dist/${APP} PREVIOUS=$(previousStep ${CURRENT_STEP})
cp -pfr ressources/${APP}/rootfs/* dist/$APP/ echo -n copy PREVIOUS in $PREVIOUS ...
bash ressources/${APP}/${APP} makedeb ${CACHE_STEP4} dist/${APP} ${GIT_VERSION} cp ${CACHE_APP}/${PREVIOUS} ${CACHE_APP}/${CURRENT_STEP}
sed -i "s/%VERSION%/$DEB_VERSION/" dist/${APP}/DEBIAN/control echo ": OK"
fakeroot dpkg-deb -Z gzip --build dist/${APP} dist debmake_chrootStep $1 /tmp/dist/exec_in_chroot.sh ${APP} ${CURRENT_STEP} ${GIT_VERSION} ${DEB_VERSION}
rm -fr dist/${APP}
} }
allstep(){ debmake_runAllStep(){
step1 debmake_runStepOS
step2 for tmp in ${STEP}
step3 do
step4 debmake_runStepCustom $tmp
step5 done
}
DeleteStep1(){
rm -fr ${CACHE_STEP1} ${CACHE_STEP2} ${CACHE_STEP3} ${CACHE_STEP4}
}
DeleteStep2(){
rm -fr ${CACHE_STEP2} ${CACHE_STEP3} ${CACHE_STEP4}
}
DeleteStep3(){
rm -fr ${CACHE_STEP3} ${CACHE_STEP4}
}
DeleteStep4(){
rm -fr ${CACHE_STEP4}
}
StartFromStep1(){
DeleteStep1
allstep
}
StartFromStep2(){
DeleteStep2
allstep
}
StartFromStep3(){
DeleteStep3
allstep
}
StartFromStep4(){
DeleteStep4
allstep
}
GotoStep1(){
chroot ${CACHE_STEP1}
}
GotoStep2(){
chroot ${CACHE_STEP2}
}
GotoStep3(){
chroot ${CACHE_STEP3}
}
GotoStep4(){
mount -t proc proc ${CACHE_STEP4}/proc/
chroot ${CACHE_STEP4}
umount ${CACHE_STEP4}/proc/
}
Clean(){
rm -fr cache/*
}
CleanAll(){
rm -fr cache/*
} }

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y build-essential git python wget ca-certificates apt install -y build-essential git python wget ca-certificates
wget -qO - https://deb.nodesource.com/setup_16.x | bash wget -qO - https://deb.nodesource.com/setup_16.x | bash
@ -24,14 +26,12 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
tar -zxf ${PATH_BUILD}/tmp/element-web/dist/element-${GIT_VERSION}-dirty.tar.gz --strip-components=1 -C ${PATH_DEB}/usr/lib/element-web/ tar -zxf /tmp/element-web/dist/element-${GIT_VERSION}-dirty.tar.gz --strip-components=1 -C ${PATH_DEB}/usr/lib/element-web/
cp ${PATH_DEB}/usr/lib/element-web/config.sample.json ${PATH_DEB}/etc/element-web/config.json cp /tmp/element-web/config.sample.json ${PATH_DEB}/etc/element-web/config.json
sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y build-essential git wget ca-certificates apt install -y build-essential git wget ca-certificates
wget -qO - https://deb.nodesource.com/setup_16.x | bash wget -qO - https://deb.nodesource.com/setup_16.x | bash
@ -7,32 +9,32 @@ envinit() {
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" > /etc/apt/sources.list.d/yarn.list
apt-get update apt-get update
apt-get install -y nodejs yarn apt-get install -y nodejs yarn
wget -qO - https://go.dev/dl/go1.17.6.linux-amd64.tar.gz | tar -C /usr/local -xz wget -qO - https://go.dev/dl/go1.17.7.linux-amd64.tar.gz | tar -C /usr/local -xz
} }
prebuild(){ prebuild(){
VERSION=$1 GIT_VERSION=$1
cd /tmp/ git clone https://github.com/gotify/server.git /tmp/server
git clone https://github.com/gotify/server.git cd /tmp/server/
cd server/ git checkout ${GIT_VERSION}
git checkout ${VERSION}
} }
build() { build() {
cd /tmp/server/ cd /tmp/server/
. /root/.bashrc PATH=${PATH}:/usr/local/go/bin
PATH=${PATH}:/usr/local/go/bin make export GO111MODULE=on
make download-tools
go get -d
(cd ui && yarn && yarn build)
go run hack/packr/packr.go
go build -ldflags="$LD_FLAGS" -o gotify-server
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 cp /tmp/server/gotify-server /tmp/dist/rootfs/usr/bin/gotify-server
cp /tmp/server/config.example.yml /tmp/dist/rootfs/etc/gotify/config.yml
cp ${PATH_BUILD}/tmp/gotify/dist/gotify ${PATH_DEB}/usr/bin/gotify sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
cp ${PATH_BUILD}/tmp/authelia/config.template.yml ${PATH_DEB}/etc/authelia/configuration.yml fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1 +1 @@
/etc/authelia/configuration.yml /etc/gotify/config.yml

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
id authelia &> /dev/null || useradd authelia -r -s /bin/false id gotify &> /dev/null || useradd gotify -r -s /bin/false

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt-get install -y wget ca-certificates gnupg2 composer git php-simplexml php-gd apt-get install -y wget ca-certificates gnupg2 composer git php-simplexml php-gd
wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg wget -qO - https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarnkey.gpg
@ -23,18 +25,17 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
find ${PATH_BUILD}/tmp/grocy -name .gitignore -exec rm {} \; find /tmp/grocy -name .gitignore -exec rm {} \;
cp -fr ${PATH_BUILD}/tmp/grocy/* ${PATH_DEB}/usr/share/grocy/ cp -fr /tmp/grocy/* ${PATH_DEB}/usr/share/grocy/
cp ${PATH_DEB}/usr/share/grocy/config-dist.php ${PATH_DEB}/etc/grocy/config.php cp ${PATH_DEB}/usr/share/grocy/config-dist.php ${PATH_DEB}/etc/grocy/config.php
mv ${PATH_DEB}/usr/share/grocy/data ${PATH_DEB}/var/lib/grocy/ mv ${PATH_DEB}/usr/share/grocy/data ${PATH_DEB}/var/lib/grocy/
ln -s /var/lib/grocy/data/ ${PATH_DEB}/usr/share/grocy/data ln -s /var/lib/grocy/data/ ${PATH_DEB}/usr/share/grocy/data
ln -s /etc/grocy/config.php ${PATH_DEB}/usr/share/grocy/config.php ln -s /etc/grocy/config.php ${PATH_DEB}/usr/share/grocy/config.php
sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y build-essential git python wget ca-certificates apt install -y build-essential git python wget ca-certificates
wget -qO - https://deb.nodesource.com/setup_16.x | bash wget -qO - https://deb.nodesource.com/setup_16.x | bash
@ -27,13 +29,12 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/joplin/packages/* ${PATH_DEB}/usr/lib/joplin-server/ cp -fr /tmp/joplin/packages/* ${PATH_DEB}/usr/lib/joplin-server/
sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,26 +1,15 @@
#!/bin/bash #!/bin/bash
envinit() { STEP="makedeb"
ls
}
prebuild(){
ls
}
build() {
ls
}
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
wget https://github.com/laurent22/joplin/releases/download/v${GIT_VERSION}/Joplin-${GIT_VERSION}.AppImage -qO ${PATH_DEB}/usr/share/joplin/Joplin.AppImage wget https://github.com/laurent22/joplin/releases/download/v${GIT_VERSION}/Joplin-${GIT_VERSION}.AppImage -qO ${PATH_DEB}/usr/share/joplin/Joplin.AppImage
chmod +x ${PATH_DEB}/usr/share/joplin/Joplin.AppImage chmod +x ${PATH_DEB}/usr/share/joplin/Joplin.AppImage
sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,8 +1,10 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y ca-certificates git libolm3 libolm-dev build-essential wget apt install -y ca-certificates git libolm3 libolm-dev build-essential wget
wget -qO - https://go.dev/dl/go1.17.3.linux-amd64.tar.gz | tar -C /usr/local -xz wget -qO - https://go.dev/dl/go1.17.7.linux-amd64.tar.gz | tar -C /usr/local -xz
} }
prebuild(){ prebuild(){
@ -15,19 +17,16 @@ prebuild(){
build() { build() {
cd /tmp/whatsapp/ cd /tmp/whatsapp/
git checkout $1
PATH=$PATH:/usr/local/go/bin ./build.sh PATH=$PATH:/usr/local/go/bin ./build.sh
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp ${PATH_BUILD}/tmp/whatsapp/mautrix-whatsapp ${PATH_DEB}/usr/lib/mautrix-whatsapp/mautrix-whatsapp cp /tmp/whatsapp/mautrix-whatsapp ${PATH_DEB}/usr/lib/mautrix-whatsapp/mautrix-whatsapp
cp ${PATH_BUILD}/tmp/whatsapp/example-config.yaml ${PATH_DEB}/etc/mautrix-whatsapp/config.yaml cp /tmp/whatsapp/example-config.yaml ${PATH_DEB}/etc/mautrix-whatsapp/config.yaml
sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild makedeb"
envinit() { envinit() {
apt install -y git apt install -y git
} }
@ -12,16 +14,12 @@ prebuild(){
git checkout $VERSION git checkout $VERSION
} }
build() {
}
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/rss-bridge ${PATH_DEB}/usr/share/ cp -fr /tmp/rss-bridge ${PATH_DEB}/usr/share/
cp ${PATH_DEB}/usr/share/rss-bridge/config.default.ini.php ${PATH_DEB}/etc/rss-bridge/config.ini.php cp ${PATH_DEB}/usr/share/rss-bridge/config.default.ini.php ${PATH_DEB}/etc/rss-bridge/config.ini.php
cp ${PATH_DEB}/usr/share/rss-bridge/whitelist.default.txt ${PATH_DEB}/etc/rss-bridge/whitelist.txt cp ${PATH_DEB}/usr/share/rss-bridge/whitelist.default.txt ${PATH_DEB}/etc/rss-bridge/whitelist.txt
@ -32,8 +30,7 @@ makedeb(){
mkdir -p ${PATH_DEB}/var/cache/rss-bridge/cache/ mkdir -p ${PATH_DEB}/var/cache/rss-bridge/cache/
rm ${PATH_DEB}/usr/share/rss-bridge/cache rm ${PATH_DEB}/usr/share/rss-bridge/cache
ln -s /var/cache/rss-bridge/cache/ ${PATH_DEB}/usr/share/rss-bridge/cache ln -s /var/cache/rss-bridge/cache/ ${PATH_DEB}/usr/share/rss-bridge/cache
sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y build-essential git python wget ca-certificates apt install -y build-essential git python wget ca-certificates
wget -qO - https://deb.nodesource.com/setup_16.x | bash wget -qO - https://deb.nodesource.com/setup_16.x | bash
@ -37,13 +39,11 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/web-vault/build/* ${PATH_DEB}/usr/share/vaultwarden-web cp -fr /tmp/web-vault/build/* ${PATH_DEB}/usr/share/vaultwarden-web
sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y --no-install-recommends build-essential git wget ca-certificates libmariadb-dev libpq-dev pkg-config libmysql++-dev apt install -y --no-install-recommends build-essential git wget ca-certificates libmariadb-dev libpq-dev pkg-config libmysql++-dev
cd /tmp cd /tmp
@ -23,13 +25,11 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/vaultwarden/target/release/vaultwarden ${PATH_DEB}/usr/lib/vaultwarden/ cp -fr /tmp/vaultwarden/target/release/vaultwarden ${PATH_DEB}/usr/lib/vaultwarden/
sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt-get install -y wget ca-certificates composer git php-common php-xml php-json php-gd php-mbstring php-xml php-tidy php-curl php-tokenizer php-bcmath php-intl php-fpm unzip apt-get install -y wget ca-certificates composer git php-common php-xml php-json php-gd php-mbstring php-xml php-tidy php-curl php-tokenizer php-bcmath php-intl php-fpm unzip
} }
@ -15,27 +17,24 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/wallabag/app ${PATH_DEB}/usr/share/wallabag/app cp -fr /tmp/wallabag/app ${PATH_DEB}/usr/share/wallabag/app
cp -fr ${PATH_BUILD}/tmp/wallabag/src ${PATH_DEB}/usr/share/wallabag/src cp -fr /tmp/wallabag/src ${PATH_DEB}/usr/share/wallabag/src
cp -fr ${PATH_BUILD}/tmp/wallabag/vendor ${PATH_DEB}/usr/share/wallabag/vendor cp -fr /tmp/wallabag/vendor ${PATH_DEB}/usr/share/wallabag/vendor
cp -fr ${PATH_BUILD}/tmp/wallabag/web ${PATH_DEB}/usr/share/wallabag/web cp -fr /tmp/wallabag/web ${PATH_DEB}/usr/share/wallabag/web
cp -fr ${PATH_BUILD}/tmp/wallabag/data ${PATH_DEB}/var/lib/wallabag/data cp -fr /tmp/wallabag/data ${PATH_DEB}/var/lib/wallabag/data
cp -fr ${PATH_BUILD}/tmp/wallabag/var ${PATH_DEB}/var/lib/wallabag/var cp -fr /tmp/wallabag/var ${PATH_DEB}/var/lib/wallabag/var
cp ${PATH_BUILD}/tmp/wallabag/app/config/parameters.yml.dist ${PATH_DEB}/etc/wallabag/parameters.yml cp /tmp/wallabag/app/config/parameters.yml.dist ${PATH_DEB}/etc/wallabag/parameters.yml
ln -s /var/lib/wallabag/data ${PATH_DEB}/usr/share/wallabag/data ln -s /var/lib/wallabag/data ${PATH_DEB}/usr/share/wallabag/data
ln -s /var/lib/wallabag/var ${PATH_DEB}/usr/share/wallabag/var ln -s /var/lib/wallabag/var ${PATH_DEB}/usr/share/wallabag/var
ln -s /etc/wallabag/parameters.yml ${PATH_DEB}/usr/share/wallabag/app/config/parameters.yml ln -s /etc/wallabag/parameters.yml ${PATH_DEB}/usr/share/wallabag/app/config/parameters.yml
sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
STEP="envinit prebuild build makedeb"
envinit() { envinit() {
apt install -y wget ca-certificates nodejs npm git make g++ gcc apt install -y wget ca-certificates nodejs npm git make g++ gcc
} }
@ -19,15 +21,13 @@ build() {
} }
makedeb(){ makedeb(){
PATH_BUILD=$1 GIT_VERSION=$1
PATH_DEB=$2 DEB_VERSION=$2
GIT_VERSION=$3 PATH_DEB=/tmp/dist/rootfs
cp -fr ${PATH_BUILD}/tmp/zigbee2mqtt/data/configuration.yaml ${PATH_DEB}/etc/zigbee2mqtt/configuration.yaml cp -fr /tmp/zigbee2mqtt/data/configuration.yaml ${PATH_DEB}/etc/zigbee2mqtt/configuration.yaml
cp -fr ${PATH_BUILD}/tmp/zigbee2mqtt/* ${PATH_DEB}/usr/lib/zigbee2mqtt/ cp -fr /tmp/zigbee2mqtt/* ${PATH_DEB}/usr/lib/zigbee2mqtt/
sed -i "s/%VERSION%/$DEB_VERSION/" /tmp/dist/rootfs/DEBIAN/control
fakeroot dpkg-deb -Z gzip --build /tmp/dist/rootfs/ /tmp/dist/
} }
echo $1
FUNC=$1
shift
${FUNC} $*