Syster Services
This commit is contained in:
61
setup.sh
61
setup.sh
@@ -2,9 +2,6 @@
|
||||
ROOT_DIR="$(dirname "$0")"
|
||||
cd $ROOT_DIR
|
||||
|
||||
# TODO: add CMD line args
|
||||
# - skip makeconfig
|
||||
|
||||
# Pull Klipper
|
||||
git submodule update --init --recursive
|
||||
|
||||
@@ -18,7 +15,7 @@ for f in ${CONFIG_FILES[@]}; do
|
||||
C+=($i $f)
|
||||
let i+=1
|
||||
done
|
||||
CONFIG_INDEX=$(dialog --backtitle "drwho@hackers.town" --title "Printer Selection" --menu "Select Printer Config" --output-fd 1 40 0 1 ${C[@]})
|
||||
CONFIG_INDEX=$(dialog --backtitle "drwho@hackers.town" --title "Printer Selection" --menu "Select Printer Config" --output-fd 1 40 0 1 ${C[@]} 3>&1 1>&2 2>&3)
|
||||
CONFIG_FILE=${CONFIG_FILES[$CONFIG_INDEX]}
|
||||
|
||||
# Select Serial Device
|
||||
@@ -29,11 +26,17 @@ for f in ${DEVICES[@]}; do
|
||||
C+=($i $f)
|
||||
let i+=1
|
||||
done
|
||||
DEVICE_INDEX=$(dialog --backtitle "drwho@hackers.town" --title "USB Device Selection" --menu "Select USB Device" --output-fd 1 40 0 1 ${C[@]})
|
||||
DEVICE_INDEX=$(dialog --backtitle "drwho@hackers.town" --title "USB Device Selection" --menu "Select USB Device" --output-fd 1 40 0 1 ${C[@]} 3>&1 1>&2 2>&3)
|
||||
DEVICE=${DEVICES[$DEVICE_INDEX]}
|
||||
|
||||
# Name Printer
|
||||
PRINTER_NAME="$(dialog --backtitle \"drwho@hackers.town\" --title \"Printer Name\" --inputbox \"Name This Printer\" 8 40 3>&1 1>&2 2>&3)"
|
||||
NAME_NOT_VALID=true
|
||||
while $NAME_NOT_VALID ; do
|
||||
PRINTER_NAME="$(dialog --backtitle 'drwho@hackers.town' --inputbox 'Name This Printer' 8 40 'Print' 3>&1 1>&2 2>&3)"
|
||||
if [[ $PRINTER_NAME =~ ^[a-zA-Z0-9_-]+$ ]]; then
|
||||
NAME_NOT_VALID=false
|
||||
fi
|
||||
done
|
||||
|
||||
# Build Klipper
|
||||
cat ./config/$CONFIG_FILE | sed -e "s/^serial: .\+$/serial: \/dev\/serial\/by-id\/${DEVICE}/" > ./printer.cfg
|
||||
@@ -43,20 +46,52 @@ make -j$(nproc)
|
||||
make flash FLASH_DEVICE=/dev/serial/by-id/$DEVICE
|
||||
|
||||
# Copy over printer config file
|
||||
cd $ROOT_DIR
|
||||
cp dirs/klipper/printer.cfg dirs/printer_data/config/printer.cfg
|
||||
cd $ROOT_DIR/dirs
|
||||
cat $ROOT_DIR/config/macros.gcode >> printer.cfg.tmp
|
||||
cat klipper/printer.cfg >> printer.cfg.tmp
|
||||
mv printer.cfg.tmp printer_data/config/printer.cfg
|
||||
|
||||
# Apply Edits to Configs
|
||||
cd $ROOT_DIR/dirs/print_data
|
||||
cat config/moonraker.conf | sed -e "s/PRINTERNAME/$PRINTER_NAME/g" > config/moonraker.conf.tmp
|
||||
mv config/moonraker.conf.tmp config/moonraker.conf
|
||||
|
||||
# Create Empty Dirs
|
||||
mkdir -p ~/PRINTER/logs
|
||||
mkdir -p ~/PRINTER/gcodes
|
||||
mkdir -p ~/PRINTER/certs
|
||||
mkdir -p ~/PRINTER/backup
|
||||
cat mainsail-config/client.cfg | sed -e "s/~\/printer_data/~\/$PRINTER_NAME\/printer_data/g" > mainsail-config/client.cfg.tmp
|
||||
mv mainsail-config/client.cfg.tmp mainsail-config/client.cfg
|
||||
|
||||
FILES=(crowsnest moonraker klipper)
|
||||
for f in ${FILES[@]}; do
|
||||
cat systemd/$f.service | sed -e "s/PRINTERNAME/$PRINTER_NAME/g" > systemd/$f.service.tmp
|
||||
mv systemd/$f.service.tmp systemd/$f.service
|
||||
done
|
||||
|
||||
# Download Mainsail
|
||||
cd $ROOT_DIR
|
||||
wget -q -O mainsail.zip https://github.com/mainsail-crew/mainsail/releases/latest/download/mainsail.zip
|
||||
unzip -o mainsail.zip -d dirs/mainsail
|
||||
|
||||
# Copy To Final Location
|
||||
mkdir -p ~/$PRINTER_NAME
|
||||
cp -r dirs/* ~/$PRINTER_NAME
|
||||
|
||||
# Create Empty Dirs
|
||||
DIRS=(logs gcodes certs backup mainsail-config)
|
||||
for d in ${DIRS[@]}; do
|
||||
mkdir -p "~/$PRINTER_NAME/$d"
|
||||
done
|
||||
|
||||
# Configure System Services
|
||||
cd $ROOT_DIR/config/services
|
||||
SERVICES=()
|
||||
for f in *.service; do
|
||||
SERVICES+=($f)
|
||||
cat $f | sed -e "s/PRINTERNAME/$PRINTER_NAME/g" > /etc/systemd/system/$PRINTERNAME-$f
|
||||
done
|
||||
|
||||
# Install System Services
|
||||
sudo cp $ROOT_DIR/config/services/* /etc/systemd/system/
|
||||
sudo systemctl daemon-reload
|
||||
for svc in ${SERVICES[@]}; do
|
||||
sudo systemctl enable $PRINTER_NAME-$svc
|
||||
sudo systemctl start $PRINTER_NAME-$svc
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user