mirror of
https://git.fsfe.org/FSFE/fsfe-local-build.git
synced 2026-04-21 03:43:05 +02:00
Compare commits
12 Commits
v1.0
...
docker-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fdb8e1924a | ||
|
|
f556ac87f3 | ||
|
6eba7c4259
|
|||
|
dde9f0a8f9
|
|||
|
ba50b33e15
|
|||
|
1e1cd80be6
|
|||
| c26208da78 | |||
| 01dc8c46a0 | |||
| 598362d103 | |||
| 64a492a244 | |||
| 3866e8752a | |||
| fd7ba1e8fe |
10
.gitignore
vendored
10
.gitignore
vendored
@@ -1,3 +1,13 @@
|
|||||||
config.cfg
|
config.cfg
|
||||||
lighttpd-fsfe.conf
|
lighttpd-fsfe.conf
|
||||||
pywebserver-fsfe.log
|
pywebserver-fsfe.log
|
||||||
|
fsfe.org
|
||||||
|
fsfe-website
|
||||||
|
|
||||||
|
lighttpd-fsfe*.log
|
||||||
|
|
||||||
|
# ignore everything in fsfe.org/ and status/ but keep the folders
|
||||||
|
fsfe.org/*
|
||||||
|
!fsfe.org/.gitkeep
|
||||||
|
status/*
|
||||||
|
!status/.gitkeep
|
||||||
|
|||||||
26
Dockerfile
Normal file
26
Dockerfile
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
FROM alpine:3.9
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
bash \
|
||||||
|
bash-completion \
|
||||||
|
coreutils \
|
||||||
|
diffutils \
|
||||||
|
findutils \
|
||||||
|
inotify-tools \
|
||||||
|
libxml2-utils \
|
||||||
|
libxslt \
|
||||||
|
make \
|
||||||
|
nodejs \
|
||||||
|
nodejs-npm \
|
||||||
|
procps \
|
||||||
|
python3 \
|
||||||
|
rsync
|
||||||
|
|
||||||
|
RUN npm install -g less
|
||||||
|
|
||||||
|
RUN mkdir -p /fsfe-local-build/fsfe.org
|
||||||
|
|
||||||
|
EXPOSE 8000
|
||||||
|
|
||||||
|
CMD sh /fsfe-local-build/docker-cmd.sh
|
||||||
|
|
||||||
48
README.md
48
README.md
@@ -1,5 +1,49 @@
|
|||||||
# FSFE Local Build
|
# FSFE Website Local Build
|
||||||
|
|
||||||
This is a collection of scripts and configuration files necessary to build fsfe.org websites locally.
|
This is a collection of scripts, tools and configuration files necessary to build fsfe.org websites locally.
|
||||||
|
|
||||||
Full instructions can be found in FSFE's wiki: https://wiki.fsfe.org/TechDocs/Mainpage/BuildLocally
|
Full instructions can be found in FSFE's wiki: https://wiki.fsfe.org/TechDocs/Mainpage/BuildLocally
|
||||||
|
|
||||||
|
## Docker based development environment
|
||||||
|
|
||||||
|
For convenience local development you may want to use the docker contaienr provided by this repo.
|
||||||
|
|
||||||
|
The container contains everything you need to work on the website including serving a preview, building the static pages and the CSS files.
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
* Docker https://docs.docker.com/install/
|
||||||
|
* Docker Compose https://docs.docker.com/compose/install/
|
||||||
|
* Patience (for the website build)
|
||||||
|
|
||||||
|
### Website Dev Instructions
|
||||||
|
|
||||||
|
#### Initial set up
|
||||||
|
|
||||||
|
Just run the following command for the initial setup:
|
||||||
|
|
||||||
|
```
|
||||||
|
./docker-setup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠ The command may run some hours, since it does the initial full build of the website.
|
||||||
|
|
||||||
|
#### Development
|
||||||
|
|
||||||
|
Spin up the container (⚠ takes some minutes):
|
||||||
|
|
||||||
|
docker-compose up
|
||||||
|
|
||||||
|
The website should now be available on your machine under http://127.0.0.1:8000/.
|
||||||
|
|
||||||
|
Build a single page after changes (e.g. `index.de.xhtml`):
|
||||||
|
|
||||||
|
```
|
||||||
|
docker exec \
|
||||||
|
--workdir /fsfe-local-build/fsfe.org \
|
||||||
|
fsfe-local-build \
|
||||||
|
bash ../fsfe-preview.sh ../fsfe-website/index.de.xhtml
|
||||||
|
```
|
||||||
|
|
||||||
|
Style modifications in `fsfe-website/look` trigger a re build of the styles.
|
||||||
|
After modifications a page reload shoud show the changes.
|
||||||
|
|||||||
32
config.cfg.docker
Normal file
32
config.cfg.docker
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
### BUILD DIRECTORIES ###
|
||||||
|
|
||||||
|
# Cloned Git directory (repository with XHTML source files)
|
||||||
|
LOC_trunk=/fsfe-local-build/fsfe-website
|
||||||
|
|
||||||
|
# Directory in which the result of the build process (html files) will be saved
|
||||||
|
LOC_out=/fsfe-local-build/fsfe.org
|
||||||
|
|
||||||
|
|
||||||
|
### LOCAL WEBSERVER ###
|
||||||
|
|
||||||
|
# Choose your local webserver.
|
||||||
|
# Default is "python" which is python3's built-in http.server module (SimpleHTTP) that is available on most distributions
|
||||||
|
# Use "lighttpd" if you want to use the Lighttpd webserver. This has to be configured manually (see guide)
|
||||||
|
HTTPD=lighttpd
|
||||||
|
|
||||||
|
|
||||||
|
### ADVANCED ###
|
||||||
|
|
||||||
|
# Directory of the secondary Git directory with which you made a first full build.
|
||||||
|
# Avoids having some generated files in your clean trunk.
|
||||||
|
# Default: Leave empty if you just want to use one Git source directory (recommended)
|
||||||
|
LOC_trunk_dev=
|
||||||
|
|
||||||
|
# Choose on which port the webserver runs. This has no effect for "lighttpd".
|
||||||
|
HTTPD_port=5080
|
||||||
|
|
||||||
|
# If you use other webservers like "lighttpd", this is the path to its config file
|
||||||
|
# Default: points to a lighttpd config file in the same directory as the script
|
||||||
|
# Has no effect if you use the "python" webserver
|
||||||
|
HTTPD_conf=$ROOT/lighttpd-fsfe.conf
|
||||||
|
|
||||||
@@ -1,15 +1,10 @@
|
|||||||
### BUILD DIRECTORIES ###
|
### BUILD DIRECTORIES ###
|
||||||
|
|
||||||
# SVN trunk directory (repository with XHTML source files)
|
# Cloned Git directory (repository with XHTML source files)
|
||||||
LOC_trunk=~/subversion/fsfe/fsfe-web/trunk
|
LOC_trunk=~/Web/FSFE/fsfe-website
|
||||||
|
|
||||||
# Directory in which the result of the build process (html files) will be saved
|
# Directory in which the result of the build process (html files) will be saved
|
||||||
LOC_out=~/subversion/fsfe/local-build/fsfe.org
|
LOC_out=~/Web/FSFE/fsfe-local-build/fsfe.org
|
||||||
|
|
||||||
# Directory of the secondary SVN directory with which you made a first full build.
|
|
||||||
# Avoids having some generated files in your clean trunk.
|
|
||||||
# Default: Leave empty if you just want to use one SVN source directory (recommended)
|
|
||||||
LOC_trunk_dev=
|
|
||||||
|
|
||||||
|
|
||||||
### LOCAL WEBSERVER ###
|
### LOCAL WEBSERVER ###
|
||||||
@@ -19,6 +14,14 @@ LOC_trunk_dev=
|
|||||||
# Use "lighttpd" if you want to use the Lighttpd webserver. This has to be configured manually (see guide)
|
# Use "lighttpd" if you want to use the Lighttpd webserver. This has to be configured manually (see guide)
|
||||||
HTTPD=python
|
HTTPD=python
|
||||||
|
|
||||||
|
|
||||||
|
### ADVANCED ###
|
||||||
|
|
||||||
|
# Directory of the secondary Git directory with which you made a first full build.
|
||||||
|
# Avoids having some generated files in your clean trunk.
|
||||||
|
# Default: Leave empty if you just want to use one Git source directory (recommended)
|
||||||
|
LOC_trunk_dev=
|
||||||
|
|
||||||
# Choose on which port the webserver runs. This has no effect for "lighttpd".
|
# Choose on which port the webserver runs. This has no effect for "lighttpd".
|
||||||
HTTPD_port=5080
|
HTTPD_port=5080
|
||||||
|
|
||||||
|
|||||||
32
docker-cmd.sh
Executable file
32
docker-cmd.sh
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
########################################################################
|
||||||
|
# Copyright (C) 2019 Michael Weimann <mweimann@fsfe.org>
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# This script is executed in docker CMD.
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
# Set up the less watcher
|
||||||
|
cd /fsfe-local-build
|
||||||
|
sh less-watch.sh &
|
||||||
|
|
||||||
|
# Run the preview server
|
||||||
|
cd /fsfe-local-build/fsfe.org
|
||||||
|
python3 -m http.server
|
||||||
|
|
||||||
12
docker-compose.yml
Normal file
12
docker-compose.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
fsfe-local-build:
|
||||||
|
build: .
|
||||||
|
image: fsfe/local-build:1.0
|
||||||
|
container_name: fsfe-local-build
|
||||||
|
ports:
|
||||||
|
- 8000:8000
|
||||||
|
volumes:
|
||||||
|
- .:/fsfe-local-build
|
||||||
|
|
||||||
53
docker-setup.sh
Executable file
53
docker-setup.sh
Executable file
@@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
########################################################################
|
||||||
|
# Copyright (C) 2019 Michael Weimann <mweimann@fsfe.org>
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# This script runs the docker dev setup.
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
echo -e "\e[96m→ Cloning the website repo\e[0m"
|
||||||
|
git clone git@git.fsfe.org:FSFE/fsfe-website.git
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo -e "\e[96m→ Setting up the config file\e[0m"
|
||||||
|
cp config.cfg.docker config.cfg
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo -e "\e[96m→ Linking the look directory\e[0m"
|
||||||
|
ln -s ../fsfe-website/look fsfe.org/look
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo -e "\e[96m→ Starting the container\e[0m"
|
||||||
|
docker-compose up --build -d
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo -e "\e[96m→ Initial full build\e[0m"
|
||||||
|
echo -e "\e[33m⚠ This may take some hours\e[0m"
|
||||||
|
docker exec fsfe-local-build \
|
||||||
|
bash /fsfe-local-build/fsfe-website/build/build_main.sh \
|
||||||
|
build_into /fsfe-local-build/fsfe.org/ \
|
||||||
|
--statusdir /fsfe-local-build/status/ \
|
||||||
|
|| true
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo -e "\e[96m→ Stopping the container\e[0m"
|
||||||
|
docker-compose stop
|
||||||
|
echo ""
|
||||||
|
|
||||||
108
fsfe-preview.sh
108
fsfe-preview.sh
@@ -25,6 +25,38 @@
|
|||||||
#
|
#
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
||||||
|
# Coloured and tagged output
|
||||||
|
function echo_ERR {
|
||||||
|
echo -e '\033[0;31m'"[ERROR] $1"'\033[0m'
|
||||||
|
}
|
||||||
|
function echo_SUC {
|
||||||
|
echo -e '\033[0;32m'"[SUCCESS] $1"'\033[0m'
|
||||||
|
}
|
||||||
|
function echo_WARN {
|
||||||
|
echo -e '\033[0;33m'"[WARNING] $1"'\033[0m'
|
||||||
|
}
|
||||||
|
function echo_INFO {
|
||||||
|
echo -e '\033[0;37m'"[INFO] $1"'\033[0m'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check dependencies (stolen from build_main.sh)
|
||||||
|
deperrors=''
|
||||||
|
for depend in realpath rsync xsltproc xmllint sed find egrep grep wc make tee date iconv; do
|
||||||
|
if ! which "$depend" >/dev/null 2>&1; then
|
||||||
|
deperrors="$depend $deperrors"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -n "$deperrors" ]; then
|
||||||
|
printf '\033[1;31m'
|
||||||
|
cat <<-EOF
|
||||||
|
The build script depends on some other programs to function.
|
||||||
|
Not all of those programs could be located on your system.
|
||||||
|
Please use your package manager to install the following programs:
|
||||||
|
EOF
|
||||||
|
printf '\n\033[0;31m%s\n' "$deperrors"
|
||||||
|
exit 1
|
||||||
|
fi >>/dev/stderr
|
||||||
|
|
||||||
ROOT=$(dirname "$(readlink -f "$0")")
|
ROOT=$(dirname "$(readlink -f "$0")")
|
||||||
if [ ! -e "$ROOT"/config.cfg ]; then echo "Missing config.cfg file. Edit and rename config.cfg.sample"; exit 1; fi
|
if [ ! -e "$ROOT"/config.cfg ]; then echo "Missing config.cfg file. Edit and rename config.cfg.sample"; exit 1; fi
|
||||||
source "$ROOT"/config.cfg
|
source "$ROOT"/config.cfg
|
||||||
@@ -32,17 +64,20 @@ source "$ROOT"/config.cfg
|
|||||||
# Help listing
|
# Help listing
|
||||||
if [ "$1" = "" ]; then
|
if [ "$1" = "" ]; then
|
||||||
self=$(basename $0)
|
self=$(basename $0)
|
||||||
echo "No parameters or variables given!"
|
echo_WARN "No parameters or variables given!"
|
||||||
echo
|
echo
|
||||||
echo "Usage: "
|
echo "Usage: "
|
||||||
echo
|
echo
|
||||||
echo "$self file.en.xhtml"
|
echo "$self file.en.xhtml"
|
||||||
echo " -- build single XHTML file from your source to the local web directory"
|
echo " -- build single XHTML file from your source to the local web "
|
||||||
echo " the destination will be on the same relative level of the selected XHTML file"
|
echo " directory"
|
||||||
|
echo " The destination will be on the same relative level of the "
|
||||||
|
echo " selected XHTML file"
|
||||||
echo " If not a XHTML file, it will be copied to the web directory"
|
echo " If not a XHTML file, it will be copied to the web directory"
|
||||||
echo
|
echo
|
||||||
echo "$self --copy picture.png look/style.css"
|
echo "$self --copy picture.png look/style.css"
|
||||||
echo " -- Just copies several files to the local web directory without even trying to build them"
|
echo " -- Just copies several files to the local web directory without "
|
||||||
|
echo " even trying to build them"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -54,37 +89,57 @@ LOC_trunk_dev=$(echo $LOC_trunk_dev | sed 's|/$||')
|
|||||||
# Pure copy
|
# Pure copy
|
||||||
if [ "$1" = "--copy" ]; then
|
if [ "$1" = "--copy" ]; then
|
||||||
numargs=$(($# - 1))
|
numargs=$(($# - 1))
|
||||||
echo "[INFO] Starting a plain mass copy with $numargs files..."
|
echo_INFO "Starting a plain mass copy with $numargs file(s)..."
|
||||||
for ((i=1; i <= $numargs; i++)); do
|
for ((i=1; i <= $numargs; i++)); do
|
||||||
SRC_full=$(realpath $2)
|
SRC_full=$(realpath $2)
|
||||||
DST_full=$(echo $SRC_full | sed -E "s|$LOC_trunk|$LOC_out|")
|
DST_full=$(echo $SRC_full | sed -E "s|$LOC_trunk|$LOC_out|")
|
||||||
echo "[INFO] Copying $SRC_full to $DST_full..."
|
echo_INFO "Copying $SRC_full to $DST_full..."
|
||||||
|
if [ -d "$SRC_full" ] && [ -e "$DST_full" ]; then
|
||||||
|
rm -rf "$DST_full"
|
||||||
cp -R $SRC_full $DST_full
|
cp -R $SRC_full $DST_full
|
||||||
|
else
|
||||||
|
cp -R $SRC_full $DST_full
|
||||||
|
fi
|
||||||
|
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
echo "[SUCCESS] Copying finished. Files should be visible via the local webserver now."
|
echo_SUC "Copying finished. Files should be visible via the local webserver now."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Run through number of files given as arguments
|
||||||
|
numargs=$#
|
||||||
|
echo_INFO "Building $numargs file(s)"
|
||||||
|
if [ $numargs -gt 1 ]; then
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
for ((i=1; i <= $numargs; i++)); do
|
||||||
SRC_rel=$1 # e.g. index.en.xhtml
|
SRC_rel=$1 # e.g. index.en.xhtml
|
||||||
SRC_full=$(realpath $SRC_rel) # Full path to source file
|
SRC_full=$(realpath $SRC_rel) # Full path to source file
|
||||||
|
|
||||||
# CHECK whether the source file is located in LOC_trunk
|
# CHECK whether the source file is located in LOC_trunk
|
||||||
if [ ! $(echo $SRC_full | grep "$LOC_trunk") ]; then
|
if [ ! $(echo $SRC_full | grep "$LOC_trunk") ]; then
|
||||||
echo "[ERROR] Given source file is not part of \$LOC_trunk (currently set to \"$LOC_trunk\"). Please only build files which reside in or below this directory. Aborting now."
|
echo_ERR "Given source file is not part of \$LOC_trunk (currently set to \"$LOC_trunk\"). Please only build files which reside in or below this directory. Aborting now."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# CHECK whether the source file is a directory (only --copy allowed)
|
||||||
|
if [ -d "$SRC_full" ]; then
|
||||||
|
echo_ERR "The given file \"$SRC_full\" is a directory. Those can only be copied by using --copy as a parameter."
|
||||||
|
echo_ERR "NOTE: Using --copy won't build potential .xhtml files inside a directory. If you have this case, please first copy an empty directory and then build the .xhtml files inside them."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# TEST if a DEV SVN directory is used. If yes, copy clean file to this Dir
|
# TEST if a DEV SVN directory is used. If yes, copy clean file to this Dir
|
||||||
if [ "$LOC_trunk_dev" != "" ]; then
|
if [ "$LOC_trunk_dev" != "" ]; then
|
||||||
SRC_full_dev=$(echo $SRC_full | sed -E "s|$LOC_trunk|$LOC_trunk_dev|")
|
SRC_full_dev=$(echo $SRC_full | sed -E "s|$LOC_trunk|$LOC_trunk_dev|")
|
||||||
echo "[INFO] A \"dirty\" Development SVN directory ($LOC_trunk_dev) is being used. Copy file from clean SVN directory ($LOC_trunk) to Development directory..."
|
echo_INFO "A \"dirty\" Development SVN directory ($LOC_trunk_dev) is being used. Copy file from clean SVN directory ($LOC_trunk) to Development directory..."
|
||||||
cp $SRC_full $SRC_full_dev # copy file from clean SVN to dev/dirty SVN
|
cp $SRC_full $SRC_full_dev # copy file from clean SVN to dev/dirty SVN
|
||||||
SRC_full=$SRC_full_dev
|
SRC_full=$SRC_full_dev
|
||||||
LOC_trunk=$LOC_trunk_dev
|
LOC_trunk=$LOC_trunk_dev
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[INFO] Using file $SRC_full as source..."
|
echo_INFO "Using file $SRC_full as source..."
|
||||||
|
|
||||||
### TRANSFORM XHTML file path
|
### TRANSFORM XHTML file path
|
||||||
DST_full=$(echo $SRC_full | sed -E "s|$LOC_trunk|$LOC_out|") # replace SVN directory by build/HTTP destination
|
DST_full=$(echo $SRC_full | sed -E "s|$LOC_trunk|$LOC_out|") # replace SVN directory by build/HTTP destination
|
||||||
@@ -96,15 +151,15 @@ ftype_build="xhtml" # file types which have to be built
|
|||||||
|
|
||||||
if [[ "$ftype" == @($ftype_build) ]]; then # XHTML file
|
if [[ "$ftype" == @($ftype_build) ]]; then # XHTML file
|
||||||
DST_full=$(echo $DST_full | sed -E "s/$ftype_build/html/") # Replace xhtml by html
|
DST_full=$(echo $DST_full | sed -E "s/$ftype_build/html/") # Replace xhtml by html
|
||||||
echo "[INFO] XHTML file detected. Going to build into $DST_full ..."
|
echo_INFO "XHTML file detected. Going to build into $DST_full ..."
|
||||||
|
|
||||||
xmllint --noout "$SRC_full" || (echo; echo "[ERROR] Syntax error in $SRC_full. Error message above. Please fix!"; exit 1)
|
xmllint --noout "$SRC_full" || (echo; echo "Syntax error in $SRC_full. Error message above. Please fix!"; exit 1)
|
||||||
if [[ "$?" != "0" ]]; then exit 1; fi
|
if [[ "$?" != "0" ]]; then exit 1; fi
|
||||||
|
|
||||||
$LOC_trunk/build/build_main.sh process_file $SRC_full > $DST_full
|
$LOC_trunk/build/build_main.sh process_file $SRC_full > $DST_full
|
||||||
|
|
||||||
else # just copy file
|
else # just copy file
|
||||||
echo "[INFO] File type ($ftype) is detected as not to be built. Just copying it to $DST_full ..."
|
echo_INFO "File type ($ftype) is detected as not to be built. Just copying it to $DST_full ..."
|
||||||
cp $SRC_full $DST_full
|
cp $SRC_full $DST_full
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -112,26 +167,37 @@ fi
|
|||||||
### START WEBSERVER if necessary
|
### START WEBSERVER if necessary
|
||||||
if [ "$HTTPD" == "python" ]; then # python
|
if [ "$HTTPD" == "python" ]; then # python
|
||||||
if [ ! $(pgrep -f "pywebserver-fsfe.py $LOC_out") ]; then
|
if [ ! $(pgrep -f "pywebserver-fsfe.py $LOC_out") ]; then
|
||||||
echo "[INFO] Starting $HTTPD webserver"
|
echo_INFO "Starting $HTTPD webserver"
|
||||||
nohup "$ROOT/pywebserver-fsfe.py" "$LOC_out" "$HTTPD_port" > "$ROOT"/pywebserver-fsfe.log 2>&1 &
|
nohup "$ROOT/pywebserver-fsfe.py" "$LOC_out" "$HTTPD_port" > "$ROOT"/pywebserver-fsfe.log 2>&1 &
|
||||||
else
|
else
|
||||||
echo "[INFO] $HTTPD webserver already seems to be running."
|
echo_INFO "$HTTPD webserver already seems to be running."
|
||||||
fi
|
fi
|
||||||
elif [ "$HTTPD" == "lighttpd" ]; then
|
elif [ "$HTTPD" == "lighttpd" ]; then
|
||||||
if [ ! $(pgrep lighttpd) ]; then # lighttpd
|
if [ ! $(pgrep lighttpd) ]; then # lighttpd
|
||||||
echo "[INFO] Starting $HTTPD webserver"
|
echo_INFO "Starting $HTTPD webserver"
|
||||||
/usr/sbin/lighttpd -f "$HTTPD_conf"
|
/usr/sbin/lighttpd -f "$HTTPD_conf"
|
||||||
else
|
else
|
||||||
echo "[INFO] $HTTPD webserver already seems to be running."
|
echo_INFO "$HTTPD webserver already seems to be running."
|
||||||
fi
|
fi
|
||||||
elif [ "$HTTPD" == "" ]; then # empty variable
|
elif [ "$HTTPD" == "" ]; then # empty variable
|
||||||
echo "[ERROR] No webserver specified. Please define variable HTTPD in config.cfg. Aborting now."
|
echo_ERR "No webserver specified. Please define variable HTTPD in config.cfg. Aborting now."
|
||||||
exit 1
|
exit 1
|
||||||
else # something custom
|
else # something custom
|
||||||
echo "[WARNING] Unknown webserver defined. Please check variable HTTPD in config.cfg."
|
echo_WARN "Unknown webserver defined. Probably you won't be able to see the file in your browser. Building it anyway. Please check variable \"HTTPD\" in config.cfg."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### SHOW RESULTS
|
### SHOW RESULTS
|
||||||
echo
|
|
||||||
DST_rel=$(echo $DST_full | sed "s|$LOC_out||") # relative path
|
DST_rel=$(echo $DST_full | sed "s|$LOC_out||") # relative path
|
||||||
echo "[SUCCESS] Finished. File can be viewed at http://localhost:5080$DST_rel"
|
echo_SUC "Finished. File can be viewed at http://localhost:$HTTPD_port$DST_rel"
|
||||||
|
|
||||||
|
if [ $numargs -gt 1 ]; then
|
||||||
|
echo "++++++++++++++++++++++++++++++++++"
|
||||||
|
fi
|
||||||
|
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $numargs -gt 1 ]; then
|
||||||
|
echo
|
||||||
|
echo_SUC "$numargs files have been processed. Preview links to each file can be found individually above."
|
||||||
|
fi
|
||||||
|
|||||||
2
fsfe.org/.gitignore
vendored
2
fsfe.org/.gitignore
vendored
@@ -1,2 +0,0 @@
|
|||||||
*
|
|
||||||
!.gitignore
|
|
||||||
31
less-watch.sh
Executable file
31
less-watch.sh
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
########################################################################
|
||||||
|
# Copyright (C) 2019 Michael Weimann <mweimann@fsfe.org>
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# This script sets up a watcher that re-compiles the fsfe website
|
||||||
|
# styles on changes.
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
while inotifywait \
|
||||||
|
-r -e close_write -e create -e moved_to \
|
||||||
|
--exclude '\.(swx|swp|min\.css)' fsfe-website/look; do
|
||||||
|
lessc -x fsfe-website/look/fsfe.less fsfe-website/look/fsfe.min.css;
|
||||||
|
done
|
||||||
|
|
||||||
@@ -1,14 +1,19 @@
|
|||||||
server.modules = ( "mod_access" )
|
server.modules = ( "mod_access", "mod_accesslog" )
|
||||||
$HTTP["remoteip"] !~ "127.0.0.1" {
|
$HTTP["remoteip"] !~ "127.0.0.1" {
|
||||||
url.access-deny = ("") # prevent hosting to the network
|
url.access-deny = ("") # prevent hosting to the network
|
||||||
}
|
}
|
||||||
|
|
||||||
# change port and document-root accordingly
|
# change port and document-root accordingly
|
||||||
server.port = 5080
|
server.port = 5080
|
||||||
server.document-root = "/home/USER/subversion/fsfe/local-build/fsfe.org"
|
server.document-root = "/home/USER/Web/FSFE/fsfe-local-build/fsfe.org"
|
||||||
server.errorlog = "/dev/stdout"
|
server.errorlog = "/home/USER/Web/FSFE/fsfe-local-build/lighttpd-fsfe.error.log"
|
||||||
|
accesslog.filename = "/home/USER/Web/FSFE/fsfe-local-build/lighttpd-fsfe.access.log"
|
||||||
server.dir-listing = "enable"
|
server.dir-listing = "enable"
|
||||||
dir-listing.encoding = "utf-8"
|
dir-listing.encoding = "utf-8"
|
||||||
index-file.names = ("index.html", "index.en.html")
|
index-file.names = ("index.html", "index.en.html")
|
||||||
|
|
||||||
include_shell "./create-mime.assign.pl"
|
include_shell "./create-mime.assign.pl"
|
||||||
|
|
||||||
|
# Uncomment if your would like to enable php support
|
||||||
|
# server.modules += ( "mod_cgi" )
|
||||||
|
# cgi.assign = ( ".php" => "/usr/bin/php-cgi" )
|
||||||
|
|||||||
2
status/.gitignore
vendored
2
status/.gitignore
vendored
@@ -1,2 +0,0 @@
|
|||||||
*
|
|
||||||
!.gitignore
|
|
||||||
0
status/.gitkeep
Normal file
0
status/.gitkeep
Normal file
Reference in New Issue
Block a user