diff --git a/index.html b/index.html
index f9fc57a..6cb8ef0 100644
--- a/index.html
+++ b/index.html
@@ -22,7 +22,7 @@
<p>Version;</p>
<pre>
- rev 0.7.1
+ rev 0.7.2
</pre>
<p><a href="links.html">Links</a> contains relevant
diff --git a/tools/conf/etc/X11/xinit/xinitrc b/linux/conf/X11/xinit/xinitrc
index 2607046..2607046 100644
--- a/tools/conf/etc/X11/xinit/xinitrc
+++ b/linux/conf/X11/xinit/xinitrc
diff --git a/tools/conf/etc/X11/xorg.conf.d/10-keyboard.conf b/linux/conf/X11/xorg.conf.d/10-keyboard.conf
index d8b99b3..d8b99b3 100644
--- a/tools/conf/etc/X11/xorg.conf.d/10-keyboard.conf
+++ b/linux/conf/X11/xorg.conf.d/10-keyboard.conf
diff --git a/tools/conf/etc/X11/xorg.conf.d/50-synaptics.conf b/linux/conf/X11/xorg.conf.d/50-synaptics.conf
index 9fbb829..9fbb829 100644
--- a/tools/conf/etc/X11/xorg.conf.d/50-synaptics.conf
+++ b/linux/conf/X11/xorg.conf.d/50-synaptics.conf
diff --git a/tools/conf/etc/asound.conf b/linux/conf/asound.conf
index adbae67..adbae67 100644
--- a/tools/conf/etc/asound.conf
+++ b/linux/conf/asound.conf
diff --git a/tools/conf/etc/dnsmasq.conf b/linux/conf/dnsmasq.conf
index b6267fa..b6267fa 100644
--- a/tools/conf/etc/dnsmasq.conf
+++ b/linux/conf/dnsmasq.conf
diff --git a/tools/conf/etc/fonts/local.conf b/linux/conf/fonts/local.conf
index 64dc276..64dc276 100644
--- a/tools/conf/etc/fonts/local.conf
+++ b/linux/conf/fonts/local.conf
diff --git a/tools/conf/etc/gitweb.conf b/linux/conf/gitweb.conf
index 2f95792..2f95792 100644
--- a/tools/conf/etc/gitweb.conf
+++ b/linux/conf/gitweb.conf
diff --git a/tools/conf/etc/hosts.dnsmasq b/linux/conf/hosts.dnsmasq
index b4d0b07..b4d0b07 100644
--- a/tools/conf/etc/hosts.dnsmasq
+++ b/linux/conf/hosts.dnsmasq
diff --git a/tools/conf/etc/logrotate.conf b/linux/conf/logrotate.conf
index d7ff75c..d7ff75c 100644
--- a/tools/conf/etc/logrotate.conf
+++ b/linux/conf/logrotate.conf
diff --git a/tools/conf/etc/logrotate.d/fail2ban b/linux/conf/logrotate.d/fail2ban
index c2dc4cd..c2dc4cd 100644
--- a/tools/conf/etc/logrotate.d/fail2ban
+++ b/linux/conf/logrotate.d/fail2ban
diff --git a/tools/conf/etc/logrotate.d/letsencrypt b/linux/conf/logrotate.d/letsencrypt
index ce73ebc..ce73ebc 100644
--- a/tools/conf/etc/logrotate.d/letsencrypt
+++ b/linux/conf/logrotate.d/letsencrypt
diff --git a/tools/conf/etc/logrotate.d/lynis b/linux/conf/logrotate.d/lynis
index 8cf9181..8cf9181 100644
--- a/tools/conf/etc/logrotate.d/lynis
+++ b/linux/conf/logrotate.d/lynis
diff --git a/tools/conf/etc/logrotate.d/ntp b/linux/conf/logrotate.d/ntp
index c46b590..c46b590 100644
--- a/tools/conf/etc/logrotate.d/ntp
+++ b/linux/conf/logrotate.d/ntp
diff --git a/tools/conf/etc/logrotate.d/postgresql b/linux/conf/logrotate.d/postgresql
index 8c16bfa..8c16bfa 100644
--- a/tools/conf/etc/logrotate.d/postgresql
+++ b/linux/conf/logrotate.d/postgresql
diff --git a/tools/conf/etc/logrotate.d/samhain b/linux/conf/logrotate.d/samhain
index d60f810..d60f810 100644
--- a/tools/conf/etc/logrotate.d/samhain
+++ b/linux/conf/logrotate.d/samhain
diff --git a/tools/conf/etc/logrotate.d/shorewall b/linux/conf/logrotate.d/shorewall
index a7dffdf..a7dffdf 100644
--- a/tools/conf/etc/logrotate.d/shorewall
+++ b/linux/conf/logrotate.d/shorewall
diff --git a/tools/conf/etc/logrotate.d/shorewall6 b/linux/conf/logrotate.d/shorewall6
index ee5e246..ee5e246 100644
--- a/tools/conf/etc/logrotate.d/shorewall6
+++ b/linux/conf/logrotate.d/shorewall6
diff --git a/tools/conf/etc/nginx/conf.d/10-default.conf b/linux/conf/nginx/conf.d/10-default.conf
index 97ee31b..97ee31b 100644
--- a/tools/conf/etc/nginx/conf.d/10-default.conf
+++ b/linux/conf/nginx/conf.d/10-default.conf
diff --git a/tools/conf/etc/nginx/nginx.conf b/linux/conf/nginx/nginx.conf
index e757df6..e757df6 100644
--- a/tools/conf/etc/nginx/nginx.conf
+++ b/linux/conf/nginx/nginx.conf
diff --git a/tools/conf/etc/nginx/sites-enabled/default.conf b/linux/conf/nginx/sites-enabled/default.conf
index f7a6928..f7a6928 100644
--- a/tools/conf/etc/nginx/sites-enabled/default.conf
+++ b/linux/conf/nginx/sites-enabled/default.conf
diff --git a/tools/conf/etc/nginx/sites-enabled/email.conf b/linux/conf/nginx/sites-enabled/email.conf
index 5b34d7c..5b34d7c 100644
--- a/tools/conf/etc/nginx/sites-enabled/email.conf
+++ b/linux/conf/nginx/sites-enabled/email.conf
diff --git a/tools/conf/etc/nginx/sites-enabled/forum.conf b/linux/conf/nginx/sites-enabled/forum.conf
index 14350e3..14350e3 100644
--- a/tools/conf/etc/nginx/sites-enabled/forum.conf
+++ b/linux/conf/nginx/sites-enabled/forum.conf
diff --git a/tools/conf/etc/nginx/sites-enabled/frontpage.conf b/linux/conf/nginx/sites-enabled/frontpage.conf
index 7f7e66a..7f7e66a 100644
--- a/tools/conf/etc/nginx/sites-enabled/frontpage.conf
+++ b/linux/conf/nginx/sites-enabled/frontpage.conf
diff --git a/tools/conf/etc/nginx/sites-enabled/git.conf b/linux/conf/nginx/sites-enabled/git.conf
index f9d2d97..f9d2d97 100644
--- a/tools/conf/etc/nginx/sites-enabled/git.conf
+++ b/linux/conf/nginx/sites-enabled/git.conf
diff --git a/tools/conf/etc/nginx/sites-enabled/ports.conf b/linux/conf/nginx/sites-enabled/ports.conf
index 829d710..829d710 100644
--- a/tools/conf/etc/nginx/sites-enabled/ports.conf
+++ b/linux/conf/nginx/sites-enabled/ports.conf
diff --git a/tools/conf/etc/nginx/sites-enabled/shop.conf b/linux/conf/nginx/sites-enabled/shop.conf
index de34e40..de34e40 100644
--- a/tools/conf/etc/nginx/sites-enabled/shop.conf
+++ b/linux/conf/nginx/sites-enabled/shop.conf
diff --git a/tools/conf/etc/nginx/sites-enabled/task.conf b/linux/conf/nginx/sites-enabled/task.conf
index 8b15ee5..8b15ee5 100644
--- a/tools/conf/etc/nginx/sites-enabled/task.conf
+++ b/linux/conf/nginx/sites-enabled/task.conf
diff --git a/tools/conf/etc/nginx/sites-enabled/vexim.conf b/linux/conf/nginx/sites-enabled/vexim.conf
index d113cdc..d113cdc 100644
--- a/tools/conf/etc/nginx/sites-enabled/vexim.conf
+++ b/linux/conf/nginx/sites-enabled/vexim.conf
diff --git a/tools/conf/etc/nginx/sites-enabled/wiki.conf b/linux/conf/nginx/sites-enabled/wiki.conf
index 1e3b4d1..1e3b4d1 100644
--- a/tools/conf/etc/nginx/sites-enabled/wiki.conf
+++ b/linux/conf/nginx/sites-enabled/wiki.conf
diff --git a/tools/conf/etc/nginx/sites/default.conf b/linux/conf/nginx/sites/default.conf
index dcb076f..dcb076f 100644
--- a/tools/conf/etc/nginx/sites/default.conf
+++ b/linux/conf/nginx/sites/default.conf
diff --git a/tools/conf/etc/nginx/sites/drupal.conf b/linux/conf/nginx/sites/drupal.conf
index f79ed14..f79ed14 100644
--- a/tools/conf/etc/nginx/sites/drupal.conf
+++ b/linux/conf/nginx/sites/drupal.conf
diff --git a/tools/conf/etc/nginx/sites/flyspray.conf b/linux/conf/nginx/sites/flyspray.conf
index ba174f1..ba174f1 100644
--- a/tools/conf/etc/nginx/sites/flyspray.conf
+++ b/linux/conf/nginx/sites/flyspray.conf
diff --git a/tools/conf/etc/nginx/sites/laravel.conf b/linux/conf/nginx/sites/laravel.conf
index addfd18..addfd18 100644
--- a/tools/conf/etc/nginx/sites/laravel.conf
+++ b/linux/conf/nginx/sites/laravel.conf
diff --git a/linux/conf/rc.conf b/linux/conf/rc.conf
index 6780fc3..267cdd4 100644
--- a/linux/conf/rc.conf
+++ b/linux/conf/rc.conf
@@ -5,8 +5,8 @@
FONT=default
KEYMAP=dvorak
TIMEZONE="Europe/Lisbon"
-HOSTNAME=machine
-SYSLOG=sysklogd
-SERVICES=(lo iptables net crond)
+HOSTNAME=crux
+SYSLOG=syslog-ng
+SERVICES=(apparmor lo net iptables sshd ntpd postgresql exim dovecot git-daemon php-fpm fcgiwrap nginx crond)
# End of file
diff --git a/tools/conf/etc/rc.d/blan b/linux/conf/rc.d/blan
index 61ac2d6..61ac2d6 100755
--- a/tools/conf/etc/rc.d/blan
+++ b/linux/conf/rc.d/blan
diff --git a/tools/conf/etc/rc.d/dnscrypt-proxy b/linux/conf/rc.d/dnscrypt-proxy
index db8cd77..db8cd77 100755
--- a/tools/conf/etc/rc.d/dnscrypt-proxy
+++ b/linux/conf/rc.d/dnscrypt-proxy
diff --git a/linux/conf/rc.d/git-daemon b/linux/conf/rc.d/git-daemon
index 41793eb..fc43cbf 100755
--- a/linux/conf/rc.d/git-daemon
+++ b/linux/conf/rc.d/git-daemon
@@ -3,7 +3,7 @@
SSD=/sbin/start-stop-daemon
NAME=git-daemon
PROG=$(git --exec-path)/${NAME}
-USER=gitolite
+USER=www
GROUP=gitolite
PIDFILE=/var/run/git-daemon.pid
REPOS=/srv/gitolite/repositories
diff --git a/tools/conf/etc/rc.d/syslog-ng b/linux/conf/rc.d/syslog-ng
index 4ccc7f8..4ccc7f8 100755
--- a/tools/conf/etc/rc.d/syslog-ng
+++ b/linux/conf/rc.d/syslog-ng
diff --git a/linux/conf/resolv.conf b/linux/conf/resolv.conf
index 4c22142..b568a6c 100644
--- a/linux/conf/resolv.conf
+++ b/linux/conf/resolv.conf
@@ -1,8 +1,9 @@
-#
-# /etc/resolv.conf: resolver configuration file
-#
-
-#search <domain.org>
-#nameserver <ip-address>
-nameserver 213.73.91.35
-# End of file
+# Generated by dhcpcd from wlp7s0.dhcp
+# /etc/resolv.conf.head can replace this line
+nameserver 127.0.0.1
+# CCC server
+# nameserver 213.73.91.35
+# OpenNIC Servers
+# nameserver 192.71.249.83
+# nameserver 5.135.183.146
+# /etc/resolv.conf.tail can replace this line
diff --git a/tools/conf/etc/ssh/sshd_config b/linux/conf/ssh/sshd_config
index 495d183..495d183 100644
--- a/tools/conf/etc/ssh/sshd_config
+++ b/linux/conf/ssh/sshd_config
diff --git a/tools/conf/etc/syslog-ng.conf b/linux/conf/syslog-ng.conf
index 02e2d57..02e2d57 100644
--- a/tools/conf/etc/syslog-ng.conf
+++ b/linux/conf/syslog-ng.conf
diff --git a/tools/conf/etc/rc.conf b/tools/conf/etc/rc.conf
deleted file mode 100644
index 192ef3e..0000000
--- a/tools/conf/etc/rc.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# /etc/rc.conf: system configuration
-#
-
-FONT=default
-KEYMAP=dvorak
-TIMEZONE="Europe/Lisbon"
-HOSTNAME=c2
-SYSLOG=syslog-ng
-SERVICES=(apparmor lo net iptables sshd ntpd postgresql exim dovecot git-daemon php-fpm fcgiwrap nginx crond)
-
-# End of file
diff --git a/tools/conf/etc/rc.d/git-daemon b/tools/conf/etc/rc.d/git-daemon
deleted file mode 100755
index fc43cbf..0000000
--- a/tools/conf/etc/rc.d/git-daemon
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-
-SSD=/sbin/start-stop-daemon
-NAME=git-daemon
-PROG=$(git --exec-path)/${NAME}
-USER=www
-GROUP=gitolite
-PIDFILE=/var/run/git-daemon.pid
-REPOS=/srv/gitolite/repositories
-OPTS="--verbose --reuseaddr --base-path=${REPOS}"
-
-case $1 in
- start)
- echo "Starting ${NAME}..."
- $SSD --start \
- --pidfile ${PIDFILE} \
- --exec ${PROG} -- ${OPTS} \
- --detach --pid-file=${PIDFILE} \
- --user=${USER} --group=${GROUP}
-
- ;;
- stop)
- echo "Stopping ${NAME}..."
- $SSD --stop --quiet --name git-daemon \
- --pidfile ${PIDFILE}
- ;;
- restart)
- echo "Restarting ${NAME}..."
- $0 stop
- $0 start
- ;;
- status)
- $SSD --status --pidfile $PIDFILE
- case $? in
- 0) echo "$PROG is running with pid $(cat $PIDFILE )" ;;
- 3) echo "$PROG is not running" ;;
- 4) echo "Unable to determine the program status" ;;
- esac
- ;;
- *)
- echo "usage: $0 [start|stop|restart|status]"
- ;;
-esac
diff --git a/tools/conf/etc/rc.d/postgresql b/tools/conf/etc/rc.d/postgresql
deleted file mode 100755
index 5f0762a..0000000
--- a/tools/conf/etc/rc.d/postgresql
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# /etc/rc.d/postgresql: start, stop or restart PostgreSQL server postmaster
-#
-
-PG_DATA=/srv/pgsql/data
-
-case "$1" in
- start|stop|status|restart|reload)
- sudo -u postgres pg_ctl -D "$PG_DATA" -l /var/log/postgresql "$1"
- ;;
- *)
- echo "usage: $0 start|stop|restart|reload|status"
- ;;
-esac
-
-# End of file
diff --git a/tools/conf/etc/resolv.conf b/tools/conf/etc/resolv.conf
deleted file mode 100644
index b568a6c..0000000
--- a/tools/conf/etc/resolv.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-# Generated by dhcpcd from wlp7s0.dhcp
-# /etc/resolv.conf.head can replace this line
-nameserver 127.0.0.1
-# CCC server
-# nameserver 213.73.91.35
-# OpenNIC Servers
-# nameserver 192.71.249.83
-# nameserver 5.135.183.146
-# /etc/resolv.conf.tail can replace this line
diff --git a/tools/conf/srv/gitolite/cgitrc b/tools/conf/srv/gitolite/cgitrc
new file mode 100644
index 0000000..abd2437
--- /dev/null
+++ b/tools/conf/srv/gitolite/cgitrc
@@ -0,0 +1,79 @@
+##footer=/conf/cgit.footer
+#
+## Enable caching of up to 1000 output entries
+#cache-size=1000
+#
+#cache-root=/cgit/cache
+#
+## Specify some default clone urls using macro expansion
+##clone-url=git://git.codemadness.nl/$CGIT_REPO_URL
+#
+## Specify the css url
+##css=/cgit.css
+#
+## Show owner on index page
+#enable-index-owner=0
+#
+## Allow http transport git clone
+#enable-http-clone=0
+#
+## Show extra links for each repository on the index page
+#enable-index-links=0
+#
+## Enable ASCII art commit history graph on the log pages
+#enable-commit-graph=1
+#
+## Show number of affected files per commit on the log pages
+#enable-log-filecount=1
+#
+## Show number of added/removed lines per commit on the log pages
+#enable-log-linecount=1
+#
+## Sort branches by date
+#branch-sort=age
+#
+## Add a cgit favicon
+##favicon=/favicon.ico
+#
+## Enable statistics per week, month and quarter
+#max-stats=quarter
+#
+## Set the title and heading of the repository index page
+##root-title=Codemadness.org repositories
+#
+## Set a subheading for the repository index page
+##root-desc=
+#
+## Allow download of tar.gz, tar.bz2 and zip-files
+#snapshots=tar.gz
+#
+### List of common mimetypes
+#mimetype.gif=image/gif
+#mimetype.html=text/html
+#mimetype.jpg=image/jpeg
+#mimetype.jpeg=image/jpeg
+#mimetype.pdf=application/pdf
+#mimetype.png=image/png
+#mimetype.svg=image/svg+xml
+#
+### Search for these files in the root of the default branch of repositories
+### for coming up with the about page:
+#readme=:README
+#
+#virtual-root=/
+#
+#scan-path=/htdocs/src
+#
+## Disable adhoc downloads of this repo
+#repo.snapshots=0
+#
+## Disable line-counts for this repo
+#repo.enable-log-linecount=0
+#
+## Restrict the max statistics period for this repo
+#repo.max-stats=month
+enable-git-config=1
+enable-gitweb-owner=1
+#remove-suffix=1
+project-list=/projects.list
+scan-path=/repositories
diff --git a/tools/conf/srv/gitolite/deploy-web-doc b/tools/conf/srv/gitolite/deploy-web
index b836515..aa4a7fa 100755
--- a/tools/conf/srv/gitolite/deploy-web-doc
+++ b/tools/conf/srv/gitolite/deploy-web
@@ -1,28 +1,31 @@
-#!/bin/bash
+#!/bin/sh
+
######################################################################
#
# Put this file in your gitolite-admin;
-# ~/gitolite-admin/local/hooks/repo-specific/hook-deploy-web
+# ~/gitolite-admin/local/hooks/repo-specific/deploy-web
#
# set host to empty to create package for each push
# or set remote host to create package based on last deployed push
# host="https://doc.localhost"
host=""
# set name of witch branch should be deployed
-branch_to_deploy="deploy_branch"
+branch_to_deploy="master"
######################################################################
url="$host/.last_deploy"
-source /srv/gitolite/deploy/hook.sh
+
+. /srv/gitolite/deploy/hook.sh
+
read oldrev newrev refname
push_branch=$(git rev-parse --symbolic --abbrev-ref $refname)
-#SCRIPT_VARS=$(set)
+SCRIPT_VARS=$(set)
#echo "project: $PROJECT"
-#echo "local dir: $PWD" > /srv/gitolite/deploy/${GL_REPO}
-#echo "${SCRIPT_VARS}" >> /srv/gitolite/deploy/${GL_REPO}
+#echo "local dir: $PWD : /srv/gitolite/deploy/${GL_REPO}"
+#echo "${SCRIPT_VARS} : /srv/gitolite/deploy/${GL_REPO}"
if [[ $push_branch = $branch_to_deploy ]]; then
diff --git a/tools/conf/srv/gitolite/deploy-web.sh b/tools/conf/srv/gitolite/deploy-web.sh
index 86d2026..fcefa97 100644
--- a/tools/conf/srv/gitolite/deploy-web.sh
+++ b/tools/conf/srv/gitolite/deploy-web.sh
@@ -1,9 +1,9 @@
-#!/bin/bash
+#!/bin/sh
pkg_path=$1
-www_root="/srv/www"
-www_user="www"
+www_root="/srv/www/htdocs"
+www_user="daemon"
www_group="www"
pkg_file="${pkg_path}/project"
@@ -31,11 +31,12 @@ fi
# first backup all data
if [[ ! $(ls ${pkg_www} | grep -v "backup_deploy") = "" ]]; then
if [ ! -d ${pkg_back} ]; then
- sudo -u ${www_user} mkdir -p ${pkg_back}
+ mkdir -p ${pkg_back}
fi
backup_file="${pkg_back}/${pkg_name}-$(date '+%Y-%j-%H-%M-%S').tar.gz"
echo "Deploy web: making backup ${backup_file}"
- sudo -u ${www_user} tar --exclude ${pkg_back} --xattrs -zcpf ${backup_file} ${pkg_www}
+ tar --exclude ${pkg_back} --xattrs -zcpf ${backup_file} ${pkg_www}
+ chown -R ${www_user}:${www_group} ${pkg_back}
fi
# remove files and directories that have been deleted
@@ -65,7 +66,8 @@ fi
# copy new files to destination
if [ -d ${pkg_files} ]; then
echo "Deploy web: cp from ${pkg_files} to ${pkg_www}"
- sudo -u ${www_user} cp -r ${pkg_files}/* ${pkg_www}
+ cp -r ${pkg_files}/* ${pkg_www}
+ chown -R ${www_user}:${www_group} ${pkg_www}
fi
echo ${pkg_new} > ${pkg_last}
diff --git a/tools/conf/srv/gitolite/deploy.sh b/tools/conf/srv/gitolite/deploy.sh
index 1091ea9..0c15798 100755
--- a/tools/conf/srv/gitolite/deploy.sh
+++ b/tools/conf/srv/gitolite/deploy.sh
@@ -1,37 +1,37 @@
-#!/bin/bash
+#!/bin/sh
# origin package directory
packages_dir="/srv/gitolite/deploy/packages"
# temporary work directory
-deploy_dir="/srv/deploy_dir"
+deploy_dir="/srv/gitolite/deploy/deploy_dir"
# scripts to deploy packages
deploy_scripts="/srv/gitolite/deploy/scripts"
-function get_script(){
- # receives package path return script to call
- local pkg_path=$1
- echo $(head -2 ${pkg_path}/project | tail -1)
+get_script(){
+ # receives package path return script to call
+ local pkg_path=$1
+ echo $(head -2 ${pkg_path}/project | tail -1)
}
-function get_new(){
- # receives package path return commit hash (new)
- local pkg_path=$1
- echo $(head -3 ${pkg_path}/project | tail -1)
+get_new(){
+ # receives package path return commit hash (new)
+ local pkg_path=$1
+ echo $(head -3 ${pkg_path}/project | tail -1)
}
-function get_dep(){
- # receives package path return previews commit hash (old)
- local pkg_path=$1
+get_dep(){
+ # receives package path return previews commit hash (old)
+ local pkg_path=$1
- new=$(head -3 ${pkg_path}/project | tail -1)
- old=$(head -4 ${pkg_path}/project | tail -1)
+ new=$(head -3 ${pkg_path}/project | tail -1)
+ old=$(head -4 ${pkg_path}/project | tail -1)
- if [[ ! ${new} = ${old} ]]; then
- echo ${old} | cut -c1-7
- fi
+ if [[ ! ${new} = ${old} ]]; then
+ echo ${old} | cut -c1-7
+ fi
}
-function project_extract(){
+project_extract(){
# project directory containing extracted packages
local prj_dir=$1
@@ -50,55 +50,62 @@ function project_extract(){
local y=0
# array with all the news hashes
- local pkg_news=($(ls ${prj_dir}))
+ #local pkg_news=($(ls ${prj_dir}))
+ local pkg_news=$(ls ${prj_dir})
# total new packages
- local total=${#pkg_news[@]}
+ local total=${#pkg_news[*]}
echo "Deploy: $(basename ${prj_dir}) extracting packages ${pkg_news[*]}"
# find first package
- for pkg_new in ${pkg_news[@]}
+ for pkg_new in ${pkg_news[*]}
do
- # get package dependency
- pkg_dir="${prj_dir}/${pkg_new}"
- pkg_old=$(get_dep ${pkg_dir})
- if [[ ! " ${pkg_news[@]} " =~ " ${pkg_old} " ]]; then
- # pkg_news don't contain package
- # we found initial package
- pkg_temp=${pkg_news[0]}
- pkg_news[0]=${pkg_new}
- pkg_news[${x}]=${pkg_temp}
- break
- fi
- x=$((${x}+1))
+ # get package dependency
+ pkg_dir="${prj_dir}/${pkg_new}"
+ pkg_old=$(get_dep ${pkg_dir})
+ #if [[ ! " $pkg_news[@] " =~ " ${pkg_old} " ]]; then
+ if [[ `echo $pkg_news[@] | grep -c \'${pkg_old}\'` -eq 1 ]]; then
+ # pkg_news don't contain package
+ # we found initial package
+ pkg_temp=${pkg_news[0]}
+ pkg_news[0]=${pkg_new}
+ pkg_news[${x}]=${pkg_temp}
+ break
+ fi
+ x=$((${x}+1))
done
# Order packages by dependency start with first package
- for (( y=0; y<${total}; y++ ))
+ #for (( y=0; y<${total}; y++ ))
+ y=0
+ while [ $y -lt $total ]
do
- pkg_next=$(($y+1))
- if [[ ${pkg_next} = ${total} ]]; then
- ## we are in the last one
- break
- fi
-
- pkg_new=${pkg_news[$y]}
- for (( x=pkg_next; x<${total}; x++ ))
- do
- pkg_dir="${prj_dir}/${pkg_news[${x}]}"
- pkg_old=$(get_dep ${pkg_dir})
- # is dependent on current
- if [[ ${pkg_old} = ${pkg_new} ]]; then
- pkg_temp=${pkg_news[${pkg_next}]}
- pkg_news[${pkg_next}]=${pkg_news[${x}]}
- pkg_news[${x}]=${pkg_temp}
- # we can break and pass next one
- break
- fi
- done
+ pkg_next=$(($y+1))
+ if [[ ${pkg_next} = ${total} ]]; then
+ ## we are in the last one
+ break
+ fi
+
+ pkg_new=${pkg_news[$y]}
+ #for (( x=pkg_next; x<${total}; x++ ))
+ x=$pkg_next;
+ while [ $x -lt $total ]
+ do
+ pkg_dir="${prj_dir}/${pkg_news[${x}]}"
+ pkg_old=$(get_dep ${pkg_dir})
+ # is dependent on current
+ if [[ ${pkg_old} = ${pkg_new} ]]; then
+ pkg_temp=${pkg_news[${pkg_next}]}
+ pkg_news[${pkg_next}]=${pkg_news[${x}]}
+ pkg_news[${x}]=${pkg_temp}
+ # we can break and pass next one
+ break
+ fi
+ x=$x+1
+ done
+ y=$y+1
done
-
# create project final package directory
mkdir -p ${prj_pkg}/files
@@ -108,68 +115,67 @@ function project_extract(){
# now that packages are ordered we can start creating files
for pkg_new in ${pkg_news[@]}
do
- pkg_dir=${prj_dir}/${pkg_new}
- tar xf ${pkg_dir}/files.tar.xz \
- --directory ${prj_pkg}/files
-
- # if deleted files exists
- if [ -f "${pkg_dir}/deleted" ]; then
- # first collect all files/directories don't exist
- while read pkg_del; do
- # if file don't exist add entry to project deleted file
- pkg_temp="${prj_pkg}/files/${pkg_del}"
- if [ ! -f ${pkg_temp} ]; then
- if [ ! -d ${pkg_temp} ]; then
- # is not a file or directory from previous packages
- echo ${pkg_del} >> ${prj_pkg}/deleted
- fi
- fi
- done <${prj_dir}/${pkg_new}/deleted
-
- # delete directories and files
- while read pkg_del; do
- pkg_temp="${prj_pkg}/files/${pkg_del}"
- if [ -d ${pkg_temp} ]; then
- rm -r ${pkg_temp}
- elif [ -f ${pkg_temp} ]; then
- rm ${pkg_temp}
- fi
- done <${prj_dir}/${pkg_new}/deleted
- fi
-
- #remove temporary directory
- rm -r ${prj_dir}/${pkg_new}
- done
+ pkg_dir=${prj_dir}/${pkg_new}
+ tar -C ${prj_pkg}/files -xf ${pkg_dir}/files.tar.xz
+ # if deleted files exists
+ if [ -f "${pkg_dir}/deleted" ]; then
+ # first collect all files/directories don't exist
+ while read pkg_del; do
+ # if file don't exist add entry to project deleted file
+ pkg_temp="${prj_pkg}/files/${pkg_del}"
+ if [ ! -f ${pkg_temp} ]; then
+ if [ ! -d ${pkg_temp} ]; then
+ # is not a file or directory from previous packages
+ echo ${pkg_del} >> ${prj_pkg}/deleted
+ fi
+ fi
+ done <${prj_dir}/${pkg_new}/deleted
+
+ # delete directories and files
+ while read pkg_del; do
+ pkg_temp="${prj_pkg}/files/${pkg_del}"
+ if [ -d ${pkg_temp} ]; then
+ rm -r ${pkg_temp}
+ elif [ -f ${pkg_temp} ]; then
+ rm ${pkg_temp}
+ fi
+ done <${prj_dir}/${pkg_new}/deleted
+ fi
+
+ #remove temporary directory
+ rm -r ${prj_dir}/${pkg_new}
+done
# call project deploy script
call_script=${deploy_scripts}/$(get_script $prj_pkg)
echo "Deploy: calling deploy script: ${call_script}"
- /bin/bash ${call_script} ${prj_pkg}
+ /bin/sh ${call_script} ${prj_pkg}
}
if [[ ! $(ls ${deploy_dir}) = "" ]]; then
- rm -r ${deploy_dir}/*
+ echo "removing deploy dir"
+ rm -r ${deploy_dir}/*
fi
# first extract all packages from origin directory
for pkg_path in `find ${packages_dir} -type f -name "*.tar.gz"`
do
- if [ -f ${pkg_path} ]; then
- pkg_name=$(basename ${pkg_path})
- pkg_proj=$(echo ${pkg_name} | cut -d "_" -f 1)
- pkg_new7=$(echo ${pkg_name} | tail -c -15 | cut -c -7)
- pkg_temp=${deploy_dir}/${pkg_proj}/${pkg_new7}
- mkdir -p ${pkg_temp}
- tar xf ${pkg_path} --directory ${pkg_temp}
- rm ${pkg_path}
- fi
+ if [ -f ${pkg_path} ]; then
+ pkg_name=$(basename ${pkg_path})
+ pkg_proj=$(echo ${pkg_name} | cut -d "_" -f 1)
+ pkg_new7=$(echo ${pkg_name} | tail -c -15 | cut -c -7)
+ pkg_temp=${deploy_dir}/${pkg_proj}/${pkg_new7}
+ mkdir -p ${pkg_temp}
+ tar -C ${pkg_temp} -zxf ${pkg_path}
+ rm ${pkg_path}
+ fi
done
# loop for all projects and deploy them
for prj_dir in `find ${deploy_dir} -maxdepth 1 -mindepth 1 -type d`
do
- # order index of hashes based on old commit
- echo "prj_dir $prj_dir"
- project_extract ${prj_dir}
+ # order index of hashes based on old commit
+ echo "Deploy: prj_dir=$prj_dir"
+ project_extract ${prj_dir}
done
diff --git a/tools/conf/srv/gitolite/hook.sh b/tools/conf/srv/gitolite/hook.sh
index 1f977ca..be6a696 100644
--- a/tools/conf/srv/gitolite/hook.sh
+++ b/tools/conf/srv/gitolite/hook.sh
@@ -1,11 +1,11 @@
-#!/bin/bash
+#!/bin/sh
# final packages dir
packages_dir="/srv/gitolite/deploy/packages"
# hook work directory
hook_dir="/srv/gitolite/deploy/hook_dir"
-function is_initial(){
+is_initial(){
local prj_name=$1
if [ ! -d ${hook_dir}/${prj_name} ]; then
echo "true"
@@ -14,18 +14,18 @@ function is_initial(){
fi
}
-function get_remote_rev(){
+get_remote_rev(){
echo $(wget --no-check-certificate -qO- $1)
}
-function valid_url(){
- if [[ `wget -S --spider $1 --no-check-certificate 2>&1 | grep 'HTTP/1.1 200 OK'` ]];
+valid_url(){
+ if [[ `wget -S --spider $1 --no-check-certificate 2>&1 | grep -c 'HTTP/1.1 200 OK'` -eq 1 ]];
then
echo "true";
fi
}
-function create_package(){
+create_package(){
# project name
local prj_name=$1
# git repository directory
@@ -87,7 +87,7 @@ function create_package(){
fi
- tar -zcpf ${pkg_tar} --directory=${pkg_dir} .
+ tar -zcpf ${pkg_tar} -C ${pkg_dir} .
echo "Deploy: package ${pkg_tar} ready !"
rm -r ${pkg_dir}
diff --git a/tools/conf/srv/gitolite/.gitolite.rc b/tools/conf/srv/gitolite/linux.gitweb.gitolite.rc
index d2c80b7..d2c80b7 100644
--- a/tools/conf/srv/gitolite/.gitolite.rc
+++ b/tools/conf/srv/gitolite/linux.gitweb.gitolite.rc
diff --git a/tools/conf/srv/gitolite/openbsd.cgit.gitolite.rc b/tools/conf/srv/gitolite/openbsd.cgit.gitolite.rc
new file mode 100644
index 0000000..6d7001a
--- /dev/null
+++ b/tools/conf/srv/gitolite/openbsd.cgit.gitolite.rc
@@ -0,0 +1,204 @@
+# configuration variables for gitolite
+
+# This file is in perl syntax. But you do NOT need to know perl to edit it --
+# just mind the commas, use single quotes unless you know what you're doing,
+# and make sure the brackets and braces stay matched up!
+
+# (Tip: perl allows a comma after the last item in a list also!)
+
+# HELP for commands can be had by running the command with "-h".
+
+# HELP for all the other FEATURES can be found in the documentation (look for
+# "list of non-core programs shipped with gitolite" in the master index) or
+# directly in the corresponding source file.
+
+%RC = (
+
+ # ------------------------------------------------------------------
+
+ # default umask gives you perms of '0700'; see the rc file docs for
+ # how/why you might change this
+ #UMASK => 0077,
+ UMASK => 0027,
+
+ # look for "git-config" in the documentation
+ #GIT_CONFIG_KEYS => '',
+ GIT_CONFIG_KEYS => '.*',
+
+ # comment out if you don't need all the extra detail in the logfile
+ LOG_EXTRA => 1,
+ # logging options
+ # 1. leave this section as is for 'normal' gitolite logging (default)
+ # 2. uncomment this line to log ONLY to syslog:
+ # LOG_DEST => 'syslog',
+ # 3. uncomment this line to log to syslog and the normal gitolite log:
+ # LOG_DEST => 'syslog,normal',
+ # 4. prefixing "repo-log," to any of the above will **also** log just the
+ # update records to "gl-log" in the bare repo directory:
+ # LOG_DEST => 'repo-log,normal',
+ # LOG_DEST => 'repo-log,syslog',
+ # LOG_DEST => 'repo-log,syslog,normal',
+ # syslog 'facility': defaults to 'local0', uncomment if needed. For example:
+ # LOG_FACILITY => 'local4',
+
+ # roles. add more roles (like MANAGER, TESTER, ...) here.
+ # WARNING: if you make changes to this hash, you MUST run 'gitolite
+ # compile' afterward, and possibly also 'gitolite trigger POST_COMPILE'
+ ROLES => {
+ READERS => 1,
+ WRITERS => 1,
+ },
+
+ # enable caching (currently only Redis). PLEASE RTFM BEFORE USING!!!
+ # CACHE => 'Redis',
+
+ # ------------------------------------------------------------------
+
+ # rc variables used by various features
+
+ # the 'info' command prints this as additional info, if it is set
+ # SITE_INFO => 'Please see http://blahblah/gitolite for more help',
+
+ # the CpuTime feature uses these
+ # display user, system, and elapsed times to user after each git operation
+ # DISPLAY_CPU_TIME => 1,
+ # display a warning if total CPU times (u, s, cu, cs) crosses this limit
+ # CPU_TIME_WARN_LIMIT => 0.1,
+
+ # the Mirroring feature needs this
+ # HOSTNAME => "foo",
+
+ # TTL for redis cache; PLEASE SEE DOCUMENTATION BEFORE UNCOMMENTING!
+ # CACHE_TTL => 600,
+
+ # ------------------------------------------------------------------
+
+ # suggested locations for site-local gitolite code (see cust.html)
+
+ # this one is managed directly on the server
+ # LOCAL_CODE => "$ENV{HOME}/local",
+
+ # or you can use this, which lets you put everything in a subdirectory
+ # called "local" in your gitolite-admin repo. For a SECURITY WARNING
+ # on this, see http://gitolite.com/gitolite/non-core.html#pushcode
+ LOCAL_CODE => "$rc{GL_ADMIN_BASE}/local",
+
+ # ------------------------------------------------------------------
+
+ # List of commands and features to enable
+
+ ENABLE => [
+
+ # COMMANDS
+
+ # These are the commands enabled by default
+ 'help',
+ 'desc',
+ 'info',
+ 'perms',
+ 'writable',
+
+ # Uncomment or add new commands here.
+ # 'create',
+ # 'fork',
+ # 'mirror',
+ # 'readme',
+ # 'sskm',
+ # 'D',
+
+ # These FEATURES are enabled by default.
+
+ # essential (unless you're using smart-http mode)
+ 'ssh-authkeys',
+
+ # creates git-config entries from gitolite.conf file entries like 'config foo.bar = baz'
+ 'git-config',
+
+ # creates git-daemon-export-ok files; if you don't use git-daemon, comment this out
+ 'daemon',
+
+ # creates projects.list file; if you don't use gitweb, comment this out
+ # 'gitweb',
+
+ # These FEATURES are disabled by default; uncomment to enable. If you
+ # need to add new ones, ask on the mailing list :-)
+
+ # user-visible behaviour
+
+ # prevent wild repos auto-create on fetch/clone
+ # 'no-create-on-read',
+ # no auto-create at all (don't forget to enable the 'create' command!)
+ # 'no-auto-create',
+
+ # access a repo by another (possibly legacy) name
+ # 'Alias',
+
+ # give some users direct shell access. See documentation in
+ # sts.html for details on the following two choices.
+ # "Shell $ENV{HOME}/.gitolite.shell-users",
+ # 'Shell alice bob',
+
+ # set default roles from lines like 'option default.roles-1 = ...', etc.
+ # 'set-default-roles',
+
+ # show more detailed messages on deny
+ # 'expand-deny-messages',
+
+ # show a message of the day
+ # 'Motd',
+
+ # system admin stuff
+
+ # enable mirroring (don't forget to set the HOSTNAME too!)
+ # 'Mirroring',
+
+ # allow people to submit pub files with more than one key in them
+ # 'ssh-authkeys-split',
+
+ # selective read control hack
+ # 'partial-copy',
+
+ # manage local, gitolite-controlled, copies of read-only upstream repos
+ # 'upstream',
+
+ # updates 'description' file instead of 'gitweb.description' config item
+ 'cgit',
+
+ # allow repo-specific hooks to be added
+ 'repo-specific-hooks',
+
+ # performance, logging, monitoring...
+
+ # be nice
+ # 'renice 10',
+
+ # log CPU times (user, system, cumulative user, cumulative system)
+ # 'CpuTime',
+
+ # syntactic_sugar for gitolite.conf and included files
+
+ # allow backslash-escaped continuation lines in gitolite.conf
+ # 'continuation-lines',
+
+ # create implicit user groups from directory names in keydir/
+ # 'keysubdirs-as-groups',
+
+ # allow simple line-oriented macros
+ # 'macros',
+
+ # Kindergarten mode
+
+ # disallow various things that sensible people shouldn't be doing anyway
+ # 'Kindergarten',
+ ],
+
+);
+
+# ------------------------------------------------------------------------------
+# per perl rules, this should be the last line in such a file:
+1;
+
+# Local variables:
+# mode: perl
+# End:
+# vim: set syn=perl:
diff --git a/tools/dnsmasq.html b/tools/dnsmasq.html
index 4d738e4..f738d76 100644
--- a/tools/dnsmasq.html
+++ b/tools/dnsmasq.html
@@ -28,7 +28,7 @@
<p>Dnscrypt by default resolves to dnscrypt.eu-nl, check file
/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv for a list of
compatible servers. Dnscrypt-proxy port from machine-ports contains
- <a href="conf/etc/rc.d/dnscrypt-proxy">dnscrypt-proxy</a> init
+ <a href="../linux/conf/rc.d/dnscrypt-proxy">dnscrypt-proxy</a> init
script configured to use dnscrypt.eu-dk resolver and run as
nobody user. Basic usage example;</p>
@@ -38,7 +38,7 @@
<h2 id="dnsmasq">2. Dnsmasq</h2>
- <p>Edit <a href="conf/etc/resolv.conf">resolv.conf</a>;</p>
+ <p>Edit <a href="../linux/conf/resolv.conf">resolv.conf</a>;</p>
<pre>
# /etc/resolv.conf.head can replace this line
@@ -59,8 +59,8 @@
<p>Dnsmasq provides dns caching and dhcpd, example configuration
files:
- <a href="conf/etc/dnsmasq.conf">dnsmasq.conf</a> (change interface),
- <a href="conf/etc/hosts.dnsmasq">hosts.dnsmasq</a>.</p>
+ <a href="../linux/conf/dnsmasq.conf">dnsmasq.conf</a> (change interface),
+ <a href="../linux/conf/hosts.dnsmasq">hosts.dnsmasq</a>.</p>
<p>Check /var/lib/dhcp/dnsmasq.leases to get list of dhcp leases
assigned.</p>
diff --git a/tools/gitolite.html b/tools/gitolite.html
index fd9ad8c..ace87d9 100644
--- a/tools/gitolite.html
+++ b/tools/gitolite.html
@@ -236,9 +236,30 @@
<h2 id="hooks">4. Gitolite Hooks</h2>
<p>This document creates three scripts, one is run when gitolite receives
- push to a project with hook active, second script is run under root
+ push to a project with hook active - deploy-web, second script is run under root
user to allow operations where gitolite user have no rights, third one
- is project specific.</p>
+ is project specific - deploy.sh. File hooks.sh are support functions for deploy-web hook.</p>
+
+ <pre>
+ cron ---> deploy.sh
+ (extracts/process tar)
+ |
+ calls defined script
+ to extract this case
+ deploy-web.sh
+
+ gitolite-admin/local/hooks/repo-specific/deploy-web
+ (ends in remote rep/hooks/post-receive.h00-deploy-web)
+ |
+ sources
+ |
+ /srv/gitolite/deploy/hook.sh
+ |
+ creates package and
+ set deploy script to
+ deploy-web.sh
+ </pre>
+
<p>This example try to have a separate creation of a package and its deployment,
in case deploy script is not on the same machine other method can be used to send
@@ -255,6 +276,8 @@
<a href="conf/srv/gitolite/deploy.sh">/srv/gitolite/deploy/deploy.sh</a>,
deploy in this example is called called by cron.</p>
+ <p>Note on OpenBSD all scripts must be changed to use other than bash, ksh.</p>
+
<h3 id="gtl-activate">4.1. Activate Hooks</h3>
<p>Example from
@@ -331,133 +354,10 @@
<h4>4.3.1. Hook Script</h4>
<p>Create
- <a href="conf/srv/gitolite/deploy-web-doc">gitolite-admin/local/hooks/repo-specific/deploy-web-doc</a>;</p>
-
- <pre>
- #!/bin/bash
- ######################################################################
- #
- # Put this file in your gitolite-admin;
- # ~/gitolite-admin/local/hooks/repo-specific/deploy-web-doc
- #
- # set host to empty to create package for each push
- # or set remote host to create package based on last deployed push
- # host="https://doc.localhost"
- host=""
- # set name of witch branch should be deployed
- branch_to_deploy="deploy_branch"
-
- ######################################################################
-
-
- url="$host/.last_deploy"
- source /srv/gitolite/deploy/hook.sh
- read oldrev newrev refname
- push_branch=$(git rev-parse --symbolic --abbrev-ref $refname)
-
- #SCRIPT_VARS=$(set)
- #echo "project: $PROJECT"
- #echo "local dir: $PWD" > /srv/gitolite/deploy/${GL_REPO}
- #echo "${SCRIPT_VARS}" >> /srv/gitolite/deploy/${GL_REPO}
-
- if [[ $push_branch = $branch_to_deploy ]]; then
-
- # if host empty we make local tracking
- if [[ $host = "" ]]; then
- if [[ $(is_initial ${GL_REPO}) = "true" ]]; then
- oldrev="initial"
- fi
- else
- if [[ ! $(valid_url $url) = "true" ]]; then
- echo "Deploy: set $url on remote to start creating packages"
- exit 1
- fi
- oldrev=$(get_remote_rev $url)
- fi
- create_package ${GL_REPO} ${PWD} ${oldrev} ${newrev} "deploy-web.sh"
- fi
- </pre>
+ <a href="conf/srv/gitolite/deploy-web">gitolite-admin/local/hooks/repo-specific/deploy-web</a>.</p>
<p>Create
- <a href="conf/srv/gitolite/deploy-web.sh">/srv/gitolite/deploy/scripts/deploy-web.sh</a>;</p>
-
- <pre>
- #!/bin/bash
-
- pkg_path=$1
-
- www_root="/srv/www"
- www_user="nginx"
- www_group="www"
-
- pkg_file="${pkg_path}/project"
- pkg_rm="${pkg_path}/deleted"
- pkg_files="${pkg_path}/files"
-
- if [ ! -f ${pkg_file} ]; then
- echo "Deploy web: invalid pkg_file ${pkg_file}"
- exit 1
- fi
-
- pkg_name=$(head -1 ${pkg_file})
- pkg_new=$(head -3 ${pkg_file} | tail -1)
- pkg_new7=$(echo ${pkg_new} | cut -c1-7)
-
- pkg_www="${www_root}/${pkg_name}"
- pkg_back="${pkg_www}/backup_deploy"
- pkg_last="${pkg_www}/.last_deploy"
-
- if [ ! -d ${pkg_www} ]; then
- echo "Deploy web: invalid pkg_www ${pkg_www}"
- exit 1
- fi
-
- # first backup all data
- if [[ ! $(ls ${pkg_www} | grep -v "backup_deploy") = "" ]]; then
- if [ ! -d ${pkg_back} ]; then
- sudo -u ${www_user} mkdir -p ${pkg_back}
- fi
- backup_file="${pkg_back}/${pkg_name}-$(date '+%Y-%j-%H-%M-%S').tar.gz"
- echo "Deploy web: making backup ${backup_file}"
- sudo -u ${www_user} tar --exclude ${pkg_back} --xattrs -zcpf ${backup_file} ${pkg_www}
- fi
-
- # remove files and directories that have been deleted
- if [ -f ${pkg_rm} ]; then
-
- echo "Deploy web: files to delete:"
- # first we delete files
- while read deleted_file; do
- deleted_file="${pkg_www}/${deleted_file}"
- if [ -f ${deleted_file} ]; then
- echo "file rm ${deleted_file}"
- rm ${deleted_file}
- fi
- done <${pkg_rm}
-
- # delete directories
- while read deleted_file; do
- deleted_file="${pkg_www}/${deleted_file}"
- if [ -d ${deleted_file} ]; then
- echo "file rm ${deleted_file}"
- rm ${deleted_file}
- fi
- done <${pkg_rm}
-
- fi
-
- # copy new files to destination
- if [ -d ${pkg_files} ]; then
- echo "Deploy web: cp from ${pkg_files} to ${pkg_www}"
- sudo -u ${www_user} cp -r ${pkg_files}/* ${pkg_www}
- fi
-
- echo ${pkg_new} > ${pkg_last}
- echo "Deploy: scripts/deployweb.sh ${pkg_name} ${pkg_new7} deployed."
-
- #remove temporary package
- rm -r ${pkg_path}
- </pre>
+ <a href="conf/srv/gitolite/deploy-web.sh">/srv/gitolite/deploy/scripts/deploy-web.sh</a>.</p>
<p>Activate this hook, the idea is to start with this one as a template working
and then implement the final one. Edit gitolite admin configuration file and
@@ -486,185 +386,7 @@
<h4>4.3.2. Deploy Script</h4>
- <p>Create <a href="conf/srv/gitolite/deploy.sh">/srv/gitolite/deploy/scripts/deploy.sh</a>;</p>
-
- <pre>
- #!/bin/bash
-
- # origin package directory
- packages_dir="/srv/gitolite/deploy/packages"
- # temporary work directory
- deploy_dir="/srv/deploy_dir"
- # scripts to deploy packages
- deploy_scripts="/srv/gitolite/deploy/scripts"
-
- function get_script(){
- # receives package path return script to call
- local pkg_path=$1
- echo $(head -2 ${pkg_path}/project | tail -1)
- }
-
- function get_new(){
- # receives package path return commit hash (new)
- local pkg_path=$1
- echo $(head -3 ${pkg_path}/project | tail -1)
- }
-
- function get_dep(){
- # receives package path return previews commit hash (old)
- local pkg_path=$1
-
- new=$(head -3 ${pkg_path}/project | tail -1)
- old=$(head -4 ${pkg_path}/project | tail -1)
-
- if [[ ! ${new} = ${old} ]]; then
- echo ${old} | cut -c1-7
- fi
- }
-
- function project_extract(){
-
- # project directory containing extracted packages
- local prj_dir=$1
-
- # final extracted package
- local prj_pkg="${prj_dir}/package"
-
- # temporary vars for swapping/iterating pkg_news
- local pkg_new=""
- local pkg_old=""
- local pkg_dir=""
- local pkg_temp=""
- local pkg_next=1
- local pkg_del=""
- local x=0
- local y=0
-
- # array with all the news hashes
- local pkg_news=($(ls ${prj_dir}))
-
- # total new packages
- local total=${#pkg_news[@]}
-
- echo "Deploy: $(basename ${prj_dir}) extracting packages ${pkg_news[*]}"
-
- # find first package
- for pkg_new in ${pkg_news[@]}
- do
- # get package dependency
- pkg_dir="${prj_dir}/${pkg_new}"
- pkg_old=$(get_dep ${pkg_dir})
- if [[ ! " ${pkg_news[@]} " =~ " ${pkg_old} " ]]; then
- # pkg_news don't contain package
- # we found initial package
- pkg_temp=${pkg_news[0]}
- pkg_news[0]=${pkg_new}
- pkg_news[${x}]=${pkg_temp}
- break
- fi
- x=$((${x}+1))
- done
-
- # Order packages by dependency start with first package
- for (( y=0; y<${total}; y++ ))
- do
- pkg_next=$(($y+1))
- if [[ ${pkg_next} = ${total} ]]; then
- ## we are in the last one
- break
- fi
-
- pkg_new=${pkg_news[$y]}
- for (( x=pkg_next; x<${total}; x++ ))
- do
- pkg_dir="${prj_dir}/${pkg_news[${x}]}"
- pkg_old=$(get_dep ${pkg_dir})
- # is dependent on current
- if [[ ${pkg_old} = ${pkg_new} ]]; then
- pkg_temp=${pkg_news[${pkg_next}]}
- pkg_news[${pkg_next}]=${pkg_news[${x}]}
- pkg_news[${x}]=${pkg_temp}
- # we can break and pass next one
- break
- fi
- done
- done
-
- # create project final package directory
- mkdir -p ${prj_pkg}/files
-
- # copy project information of last commit
- cp ${prj_dir}/${pkg_news[$((${total}-1))]}/project ${prj_pkg}
-
- # now that packages are ordered we can start creating files
- for pkg_new in ${pkg_news[@]}
- do
- pkg_dir=${prj_dir}/${pkg_new}
- tar xf ${pkg_dir}/files.tar.xz \
- --directory ${prj_pkg}/files
-
- # if deleted files exists
- if [ -f "${pkg_dir}/deleted" ]; then
- # first collect all files/directories don't exist
- while read pkg_del; do
- # if file don't exist add entry to project deleted file
- pkg_temp="${prj_pkg}/files/${pkg_del}"
- if [ ! -f ${pkg_temp} ]; then
- if [ ! -d ${pkg_temp} ]; then
- # is not a file or directory from previous packages
- echo ${pkg_del} >> ${prj_pkg}/deleted
- fi
- fi
- done <${prj_dir}/${pkg_new}/deleted
-
- # delete directories and files
- while read pkg_del; do
- pkg_temp="${prj_pkg}/files/${pkg_del}"
- if [ -d ${pkg_temp} ]; then
- rm -r ${pkg_temp}
- elif [ -f ${pkg_temp} ]; then
- rm ${pkg_temp}
- fi
- done <${prj_dir}/${pkg_new}/deleted
- fi
-
- #remove temporary directory
- rm -r ${prj_dir}/${pkg_new}
- done
-
- # call project deploy script
- call_script=${deploy_scripts}/$(get_script $prj_pkg)
- echo "Deploy: calling deploy script: ${call_script}"
- /bin/bash ${call_script} ${prj_pkg}
-
- }
-
- if [[ ! $(ls ${deploy_dir}) = "" ]]; then
- rm -r ${deploy_dir}/*
- fi
-
- # first extract all packages from origin directory
- for pkg_path in `find ${packages_dir} -type f -name "*.tar.gz"`
- do
- if [ -f ${pkg_path} ]; then
- pkg_name=$(basename ${pkg_path})
- pkg_proj=$(echo ${pkg_name} | cut -d "_" -f 1)
- pkg_new7=$(echo ${pkg_name} | tail -c -15 | cut -c -7)
- pkg_temp=${deploy_dir}/${pkg_proj}/${pkg_new7}
- mkdir -p ${pkg_temp}
- tar xf ${pkg_path} --directory ${pkg_temp}
- rm ${pkg_path}
- fi
- done
-
- # loop for all projects and deploy them
- for prj_dir in `find ${deploy_dir} -maxdepth 1 -mindepth 1 -type d`
- do
- # order index of hashes based on old commit
- echo "prj_dir $prj_dir"
- project_extract ${prj_dir}
- done
- </pre>
+ <p>Create <a href="conf/srv/gitolite/deploy.sh">/srv/gitolite/deploy/scripts/deploy.sh</a>.</p>
<p>Give permissions to access files;</p>
diff --git a/tools/mutt.html b/tools/mutt.html
index 4cb5599..802854e 100644
--- a/tools/mutt.html
+++ b/tools/mutt.html
@@ -90,7 +90,7 @@
<p>Lets start configuring the two accounts, one for host system
email and another for external email account. Change pgp_sign_as according to your specific sub key for signing. Change
- <a href="conf/etc/skel/.mutt/muttrc">muttrc</a> with your
+ <a href="../linux/conf/skel/.mutt/muttrc">muttrc</a> with your
preferences;</p>
<pre>
@@ -170,7 +170,7 @@
$ env | grep MAIL
</pre>
- <p>Content of <a href="conf/etc/skel/.mutt/system">.mutt/system</a>;<p>
+ <p>Content of <a href="../linux/conf/skel/.mutt/system">.mutt/system</a>;<p>
<pre>
color status green default
@@ -208,7 +208,7 @@
<h3 id="external">2.2. External Email</h3>
- <p>Edit <a href="conf/etc/skel/.mutt/external">.mutt/external</a>;</p>
+ <p>Edit <a href="../linux/conf/skel/.mutt/external">.mutt/external</a>;</p>
<pre>
color status blue default
diff --git a/tools/nginx.html b/tools/nginx.html
index 32685b9..6d0117c 100644
--- a/tools/nginx.html
+++ b/tools/nginx.html
@@ -366,7 +366,7 @@
<h3 id="virtual-server">4.3. Setup virtual server</h3>
- <p>Example of pmwiki virtual server, check <a href="conf/etc/nginx/sites-enabled/">/etc/nginx/sites-enabled</a> for the rest of examples mentioned <a href="#default-server">default server</a>. If wiki server is running on same machine add following to /etc/hosts;</p>
+ <p>Example of pmwiki virtual server, check <a href="../linux/conf/nginx/sites-enabled/">/etc/nginx/sites-enabled</a> for the rest of examples mentioned <a href="#default-server">default server</a>. If wiki server is running on same machine add following to /etc/hosts;</p>
<pre>
127.0.0.1 wiki.c2.ank
diff --git a/tools/postgresql.html b/tools/postgresql.html
index a87c0b9..a01cb2b 100644
--- a/tools/postgresql.html
+++ b/tools/postgresql.html
@@ -125,7 +125,7 @@
<h3 id="init">2.1. Init script</h3>
- <p>Change <a href="conf/etc/rc.d/postgresql">/etc/rc.d/postgresql</a>;</p>
+ <p>Change <a href="../linux/conf/rc.d/postgresql">/etc/rc.d/postgresql</a>;</p>
<pre>
#
diff --git a/tools/syslog-ng.html b/tools/syslog-ng.html
index f192fa5..47b35cd 100644
--- a/tools/syslog-ng.html
+++ b/tools/syslog-ng.html
@@ -31,7 +31,7 @@
<h2 id="configure">1.4. Syslog-ng configuration</h2>
- <p>Example of <a href="conf/etc/syslog-ng.conf">/etc/syslog-ng.conf</a>
+ <p>Example of <a href="../linux/conf/syslog-ng.conf">/etc/syslog-ng.conf</a>
that configures syslog-ng matching tools already installed in the system
and some that are part of <a href="../tools/index.html">tools</a>.</p>
@@ -52,7 +52,7 @@
# End of file
</pre>
- <p>Edit <a href="conf/etc/syslog-ng.conf">/etc/syslog-ng.conf</a> with your logging preferences;</p>
+ <p>Edit <a href="../linux/conf/syslog-ng.conf">/etc/syslog-ng.conf</a> with your logging preferences;</p>
<pre>
@version: 3.25
diff --git a/tools/vim.html b/tools/vim.html
index 6d34312..1721749 100644
--- a/tools/vim.html
+++ b/tools/vim.html
@@ -25,11 +25,11 @@
<dd>Your personal Vim initializations.</dd>
</dl>
- <p>Copy <a href="conf/etc/skel/.vimrc">/etc/skel/.vimrc</a> skeleton example, so that each user have a base to start
+ <p>Copy <a href="../linux/conf/skel/.vimrc">/etc/skel/.vimrc</a> skeleton example, so that each user have a base to start
personalizing it;</p>
<pre>
- $ sudo cp ~/doc/conf/etc/skel/.vimrc /etc/skel/
+ $ sudo cp ~/doc/../linux/conf/skel/.vimrc /etc/skel/
$ sudo mkdir /etc/skel/.vim
$ sudo mkdir /etc/skel/.vim/swap
$ sudo mkdir /etc/skel/.vim/views
diff --git a/tools/x.html b/tools/x.html
index 0e9a4eb..b4df557 100644
--- a/tools/x.html
+++ b/tools/x.html
@@ -40,7 +40,7 @@
<h3>Local xinitrc</h3>
- <p>Local xinitrc configuration: <a href="conf/etc/skel/.xinitrc">/etc/skel/.xinitrc</a>;</p>
+ <p>Local xinitrc configuration: <a href="../linux/conf/skel/.xinitrc">/etc/skel/.xinitrc</a>;</p>
<pre>
## Start the window manager
@@ -59,7 +59,7 @@
</pre>
<h3>Global xinitrc</h3>
- <p>Global xinitrc configuration: <a href="conf/etc/X11/xinit/xinitrc">/usr/etc/X11/xinit/xinitrc</a>;</p>
+ <p>Global xinitrc configuration: <a href="../linux/conf/X11/xinit/xinitrc">/usr/etc/X11/xinit/xinitrc</a>;</p>
<pre>
#!/bin/sh
@@ -101,7 +101,7 @@
<h3 id="confkeyboard">Keyboard config</h3>
- <p>Xorg global default keyboard configuration; <a href="conf/etc/X11/xorg.conf.d/10-keyboard.conf">/etc/X11/xorg.conf.d/10-keyboard.conf</a></p>
+ <p>Xorg global default keyboard configuration; <a href="../linux/conf/X11/xorg.conf.d/10-keyboard.conf">/etc/X11/xorg.conf.d/10-keyboard.conf</a></p>
<pre>
Section "InputClass"
|