d1a2228f1c
Rewrite of the docker setup. Now uses fig to manage containers and container linkage. The base is a block based mix and match, which will give you the possibility to easily test all configurations.
72 lines
No EOL
1.6 KiB
Bash
Executable file
72 lines
No EOL
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
blocks_dir=blocks
|
|
docker_dir=docker
|
|
template_dir=templates
|
|
|
|
docker_file=Dockerfile
|
|
|
|
gogs_config_file=conf.tmp
|
|
gogs_config=config
|
|
gogs_init_file=$docker_dir/init_gogs.sh
|
|
|
|
fig_file=fig.yml
|
|
fig_config=fig
|
|
|
|
gogs_init_template=$template_dir/init_gogs.sh.tpl
|
|
|
|
if [ "$#" == 0 ]; then
|
|
blocks=`ls $blocks_dir`
|
|
if [ -z "$blocks" ]; then
|
|
echo "No Blocks available in $blocks_dir"
|
|
else
|
|
echo "Available Blocks:"
|
|
for block in $blocks; do
|
|
echo " $block"
|
|
done
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
for file in $gogs_config_file $fig_file; do
|
|
if [ -e $file ]; then
|
|
echo "Deleting $file"
|
|
rm $file
|
|
fi
|
|
done
|
|
|
|
for dir in $@; do
|
|
current_dir=$blocks_dir/$dir
|
|
if [ ! -d "$current_dir" ]; then
|
|
echo "$current_dir is not a directory"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -e $current_dir/$docker_file ]; then
|
|
echo "Copying $current_dir/$docker_file to $docker_dir/$docker_file"
|
|
cp $current_dir/$docker_file $docker_dir/$docker_file
|
|
fi
|
|
|
|
if [ -e $current_dir/$gogs_config ]; then
|
|
echo "Adding $current_dir/$gogs_config to $gogs_config_file"
|
|
cat $current_dir/$gogs_config >> $gogs_config_file
|
|
echo "" >> $gogs_config_file
|
|
fi
|
|
|
|
if [ -e $current_dir/$fig_config ]; then
|
|
echo "Adding $current_dir/$fig_config to $fig_file"
|
|
cat $current_dir/fig >> $fig_file
|
|
echo "" >> $fig_file
|
|
fi
|
|
done
|
|
|
|
echo "Creating $gogs_init_file"
|
|
sed "/{{ CONFIG }}/{
|
|
r $gogs_config_file
|
|
d
|
|
}" $gogs_init_template > $gogs_init_file
|
|
|
|
if [ -e $gogs_config_file ]; then
|
|
echo "Removing temporary GoGS config"
|
|
rm $gogs_config_file
|
|
fi |