From 9e74bf51cded3c97438aecb6623d8dc179fcfa41 Mon Sep 17 00:00:00 2001 From: Liz Cray Date: Mon, 5 Aug 2024 20:31:28 -0400 Subject: [PATCH] Use temp dir --- setup.sh | 62 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/setup.sh b/setup.sh index 4a80210..b6c4bf7 100755 --- a/setup.sh +++ b/setup.sh @@ -19,8 +19,21 @@ cd $ROOT_DIR # Pull Klipper git submodule update --init --recursive + +# Name Printer +# Todo: avoid duplications +NAME_NOT_VALID=true +while $NAME_NOT_VALID ; do + PRINTER_NAME=$(dialog --backtitle 'drwho@hackers.town' --inputbox 'Name This Printer' 8 40 "${PRINTER_NAME}" 3>&1 1>&2 2>&3) + if [[ $PRINTER_NAME =~ ^[a-zA-Z0-9_-]+$ ]]; then + NAME_NOT_VALID=false + fi +done + +cp -r $ROOT_DIR/dirs $ROOT_DIR/$PRINTER_NAME + # Select Klipper Config -cd $ROOT_DIR/dirs/klipper +cd $ROOT_DIR/$PRINTER_NAME/klipper make menuconfig CONFIG_FILES=(`ls config`) CONFIG_FILES+=("Enter_Manually") @@ -62,57 +75,51 @@ if [[ $DEVICE == "Enter_Manually" ]]; then DEVICE=$MANUAL_FILE fi -# Name Printer -# Todo: avoid duplications -NAME_NOT_VALID=true -while $NAME_NOT_VALID ; do - PRINTER_NAME=$(dialog --backtitle 'drwho@hackers.town' --inputbox 'Name This Printer' 8 40 "${PRINTER_NAME}" 3>&1 1>&2 2>&3) - if [[ $PRINTER_NAME =~ ^[a-zA-Z0-9_-]+$ ]]; then - NAME_NOT_VALID=false - fi -done - # Build Klipper -cp $CONFIG_FILE $ROOT_DIR/dirs/klipper/printer.cfg -sed -i -e "s/^serial: .\+$/serial: \/dev\/serial\/by-id\/${DEVICE}/g" "${ROOT_DIR}/dirs/klipper/printer.cfg" +cp $CONFIG_FILE $ROOT_DIR/$PRINTER_NAME/klipper/printer.cfg +sed -i -e "s/^serial: .\+$/serial: \/dev\/serial\/by-id\/${DEVICE}/g" "${ROOT_DIR}/$PRINTER_NAME/klipper/printer.cfg" make -j$(nproc) # Flash Firmware make flash FLASH_DEVICE=/dev/serial/by-id/$DEVICE # Copy over printer config file -cd $ROOT_DIR/dirs +cd $ROOT_DIR/$PRINTER_NAME 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/printer_data/config +cd $ROOT_DIR/$PRINTER_NAME/printer_data/config sed -i -e "s/PRINTERNAME/$PRINTER_NAME/g" "moonraker.conf" +sed -i -e "s/pi/$USER/g" "moonraker.conf" -cd $ROOT_DIR/dirs/mainsail-config -sed -i -e "s/~\/printer_data/~\/$PRINTER_NAME\/printer_data/g" "client.cfg" +cd $ROOT_DIR/$PRINTER_NAME/mainsail-config +sed -i -e "s/$HOME\/printer_data/$HOME\/$PRINTER_NAME\/printer_data/g" "client.cfg" +sed -i -e "s/pi/$USER/g" "client.cfg" cd $ROOT_DIR/config/services # TODO: Add Crowsnest Support FILES=(moonraker klipper) for f in ${FILES[@]}; do sed -i -e "s/PRINTERNAME/$PRINTER_NAME/g" "${f}.service" + sed -i -e "s/pi/$USER/g" "${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 +unzip -o mainsail.zip -d $PRINTER_NAME/mainsail +rm mainsail.zip # Copy To Final Location -mkdir -p ~/$PRINTER_NAME -cp -r dirs/* ~/$PRINTER_NAME +mkdir -p $HOME/$PRINTER_NAME +cp -r $PRINTER_NAME/* $HOME/$PRINTER_NAME -# Create Empty Dirs -DIRS=(logs gcodes certs backup mainsail-config) -for d in ${DIRS[@]}; do - mkdir -p "~/$PRINTER_NAME/$d" +# Create Empty $PRINTER_NAME +$PRINTER_NAME=(logs gcodes certs backup mainsail-config) +for d in ${$PRINTER_NAME[@]}; do + mkdir -p "$HOME/$PRINTER_NAME/$d" done # Configure System Services @@ -120,12 +127,12 @@ cd $ROOT_DIR/config/services SERVICES=() for f in *.service; do SERVICES+=($f) - cp "${f}" "${PRINTER_NAME}-${f}" - sed -i -e "s/PRINTERNAME/$PRINTER_NAME/g" "${PRINTER_NAME}-${f}" + cp "${f}" "${ROOT_DIR}/${PRINTER_NAME}/${PRINTER_NAME}-${f}" + sed -i -e "s/PRINTERNAME/$PRINTER_NAME/g" "${ROOT_DIR}/${PRINTER_NAME}/${PRINTER_NAME}-${f}" done # Install System Services -sudo cp $ROOT_DIR/config/services/* /etc/systemd/system/ +sudo cp $ROOT_DIR/$PRINTER_NAME/*.service /etc/systemd/system/ sudo systemctl daemon-reload for svc in ${SERVICES[@]}; do sudo systemctl enable $PRINTER_NAME-$svc @@ -133,4 +140,3 @@ for svc in ${SERVICES[@]}; do done # Cleanup -rm -rf "${ROOT_DIR}/mainsail.zip"