Complete impletation
This commit is contained in:
parent
cd02c525e5
commit
edcc301640
5 changed files with 93 additions and 9 deletions
40
README.md
40
README.md
|
|
@ -1,2 +1,42 @@
|
||||||
# zpkg
|
# zpkg
|
||||||
|
|
||||||
Simple and basic packaging system
|
Simple and basic packaging system
|
||||||
|
|
||||||
|
Designed to be used by anyone and deployed anywhere,
|
||||||
|
it is a very basic packaging system without much functionnality but very portable
|
||||||
|
|
||||||
|
Official repo: `http://zawz.net/zpkg`
|
||||||
|
|
||||||
|
## Use as user
|
||||||
|
|
||||||
|
### Installing
|
||||||
|
|
||||||
|
```shell
|
||||||
|
curl -SO http://zawz.net/zpkg/install.sh
|
||||||
|
sh install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
If you wish to use another repository, substitute `zawz.net/zpkg` for your desired target
|
||||||
|
|
||||||
|
### Using
|
||||||
|
|
||||||
|
See `zpkg help`
|
||||||
|
|
||||||
|
## Deploy on a server
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
To deploy on a server you need:
|
||||||
|
- SSH server
|
||||||
|
- HTTP server
|
||||||
|
- dedicated zpkg user
|
||||||
|
|
||||||
|
You need to be able to SSH to the zpkg user. SSH keys are recommended
|
||||||
|
|
||||||
|
### Process
|
||||||
|
|
||||||
|
1. Write the desired config in `.config`, see `.config.example`
|
||||||
|
|
||||||
|
2. Run `server_deploy.sh`
|
||||||
|
|
||||||
|
3. Make available the package directory to the HTTP server
|
||||||
|
|
|
||||||
6
scripts/database_update.sh
Executable file
6
scripts/database_update.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
. "$(pwd)/.config"
|
||||||
|
|
||||||
|
cd "$HOME/$PKG_PATH" || exit $?
|
||||||
|
stat -c "%n %Y" ./*.tar.xz | sed 's|\.tar\.xz||g;s|^\./||g' > pkglist
|
||||||
39
scripts/gen_install.sh
Executable file
39
scripts/gen_install.sh
Executable file
|
|
@ -0,0 +1,39 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
. "$(pwd)/.config"
|
||||||
|
|
||||||
|
# create install file
|
||||||
|
echo '#!/bin/sh
|
||||||
|
' > install.sh
|
||||||
|
grep -E "(^HTTP_)|(^PKG_PATH)" .config >> install.sh
|
||||||
|
echo '
|
||||||
|
|
||||||
|
# Generate conf file
|
||||||
|
mkdir -p /etc/zpkg || exit $?
|
||||||
|
{
|
||||||
|
echo "SSH_ADDRESS=$SSH_USER@$SSH_ADDR"
|
||||||
|
echo "HTTP_ADDRESS=$HTTP_ADDR/$HTTP_PATH"
|
||||||
|
echo "PKG_PATH=pkg"
|
||||||
|
} > /etc/zpkg/zpkg.conf
|
||||||
|
|
||||||
|
# download zpkg
|
||||||
|
mkdir -p tmp || exit $?
|
||||||
|
(
|
||||||
|
cd tmp || exit $?
|
||||||
|
if ! wget "$HTTP_ADDR/$HTTP_PATH/zpkg.tar.xz" -q -O "zpkg.tar.xz"
|
||||||
|
then
|
||||||
|
echo "Cannot reach $HTTP_ADDR/$HTTP_PATH" > /dev/stderr
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
tar xf zpkg.tar.xz || exit $?
|
||||||
|
|
||||||
|
# install zpkg package
|
||||||
|
usr/local/bin/zpkg install zpkg || exit $?
|
||||||
|
)
|
||||||
|
|
||||||
|
# cleanup
|
||||||
|
rm -rd tmp || exit $?
|
||||||
|
zpkg update-database >/dev/null || exit $?
|
||||||
|
|
||||||
|
' >> install.sh
|
||||||
|
mv install.sh "$HOME/$PKG_PATH"
|
||||||
|
|
@ -17,10 +17,12 @@ mkdir -p "$DIR/$PKG$DEST" || exit $?
|
||||||
mkdir -p "$DIR/$PKG$BASHDEST" || exit $?
|
mkdir -p "$DIR/$PKG$BASHDEST" || exit $?
|
||||||
cp src/zpkg.bash "$ZPKG_PKG_PATH/$PKG$BASHDEST" || exit $?
|
cp src/zpkg.bash "$ZPKG_PKG_PATH/$PKG$BASHDEST" || exit $?
|
||||||
cp src/zpkg "$ZPKG_PKG_PATH/$PKG$DEST" || exit $?
|
cp src/zpkg "$ZPKG_PKG_PATH/$PKG$DEST" || exit $?
|
||||||
cd pkg/zpkg || exit $?
|
(
|
||||||
tar -cvJf zpkg.tar.xz * || exit $?
|
cd pkg/zpkg || exit $?
|
||||||
# send package
|
tar -cvJf zpkg.tar.xz * || exit $?
|
||||||
scp zpkg.tar.xz "$ssh":~/"$PKG_PATH" || exit $?
|
# send package
|
||||||
|
scp zpkg.tar.xz "$ssh":~/"$PKG_PATH" || exit $?
|
||||||
|
)
|
||||||
rm -rd "$DIR"
|
rm -rd "$DIR"
|
||||||
# update database
|
# update database
|
||||||
ssh "$ssh" sh database_update.sh || exit $?
|
ssh "$ssh" sh database_update.sh || exit $?
|
||||||
|
|
|
||||||
7
src/zpkg
7
src/zpkg
|
|
@ -82,7 +82,7 @@ deploy_package ()
|
||||||
|
|
||||||
fetch_package ()
|
fetch_package ()
|
||||||
{
|
{
|
||||||
if ! wget "$HTTP_ADDRESS/zpkg/$1.tar.xz" -q --show-progress -O "$1.tar.xz" 2>&1
|
if ! wget "$HTTP_ADDRESS/$1.tar.xz" -q --show-progress -O "$1.tar.xz" 2>&1
|
||||||
then
|
then
|
||||||
echo "Package '$1' not found" > /dev/stderr
|
echo "Package '$1' not found" > /dev/stderr
|
||||||
return 1
|
return 1
|
||||||
|
|
@ -105,7 +105,7 @@ fetch_pkglist ()
|
||||||
{
|
{
|
||||||
cd "$config_path"
|
cd "$config_path"
|
||||||
mv pkglist pkglist_bak 2>/dev/null
|
mv pkglist pkglist_bak 2>/dev/null
|
||||||
if ! wget "$HTTP_ADDRESS/zpkg/pkglist" -q --show-progress -O pkglist 2>&1
|
if ! wget "$HTTP_ADDRESS/pkglist" -q --show-progress -O pkglist 2>&1
|
||||||
then
|
then
|
||||||
echo "Couldn't fetch server data" > /dev/stderr
|
echo "Couldn't fetch server data" > /dev/stderr
|
||||||
mv pkglist_bak pkglist 2>/dev/null
|
mv pkglist_bak pkglist 2>/dev/null
|
||||||
|
|
@ -216,9 +216,6 @@ fi
|
||||||
|
|
||||||
. "$config_file"
|
. "$config_file"
|
||||||
|
|
||||||
#ssh_address=$(grep "SSH_ADDRESS=" "$config_file" | cut -d '=' -f2-)
|
|
||||||
#http_address=$(grep "HTTP_ADDRESS=" "$config_file" | cut -d '=' -f2-)
|
|
||||||
#pkg_path=$(grep "PKG_PATH=" "$config_file" | cut -d '=' -f2-)
|
|
||||||
if [ "$(echo $PKG_PATH | cut -c1)" != "/" ]
|
if [ "$(echo $PKG_PATH | cut -c1)" != "/" ]
|
||||||
then
|
then
|
||||||
PKG_PATH="$config_path/$PKG_PATH"
|
PKG_PATH="$config_path/$PKG_PATH"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue