#!/bin/bash # Variables blog_dir=~/repos/blog-cms check() { if [ "$EUID" -ne 0 ] then echo "Please run as root" exit fi } confirm() { confirmvar="" while [[ "$confirmvar" == "" ]] do read -p "y/n/q: " confirmvar if [ "${confirmvar}" == "y" ] then echo true elif [ "${confirmvar}" == "n" ] then echo false fi done } newpost() { c=false while [[ ${c} == false ]] do read -p "Title: " title echo -e "Subject 1:\n\t0 - no subject\n\t1 - Programming\n\t2 - Pentesting\n\t3 - Personal" sub1=$(subjectselect) echo -e "Subject 1:\n\t0 - no subject\n\t1 - Programming\n\t2 - Pentesting\n\t3 - Personal" sub2=$(subjectselect) echo -e "Title: ${title}\nSubject 1: ${sub1}\nSubject 2: ${sub2}\n\nAre you sure?\n" c=$(confirm) done dirname=$(echo ${title} | sed 's/\ /_/g') mkdir -p ${blog_dir}/posts/${dirname}/static cd ${blog_dir}/posts/${dirname} echo ${title} >> title echo ${sub1} >> .sub1 echo ${sub2} >> .sub2 touch {intro.html,body.html} pwd ls -al } subjectselect() { read -p "0/1/2/3: " tmpvar if [ "$tmpvar" == "1" ] then echo "Programming" elif [ "$tmpvar" == "2" ] then echo "Pentesting" elif [ "$tmpvar" == "3" ] then echo "Personal" elif [ "$tmpvar" == "0" ] then echo "" fi } listandReturn() { printf "Listing contents of %s.\\n" "$1" ls -rc "$1" | awk -F '/' '{print $NF}' | nl read -erp "Pick an entry by number to $2, or press ctrl-c to cancel. " number chosen="$(ls -rc "$1" | nl | grep -w "$number" | awk '{print $2}')" basefile="$(basename "$chosen")" && base="${basefile%.*}" ;} upload() { #check listandReturn ${blog_dir}/posts #cd ${blog_dir}/posts/${basefile} titlevar=$(cat ${blog_dir}/posts/${basefile}/title) subvar1=$(cat ${blog_dir}/posts/${basefile}/.sub1) subvar2=$(cat ${blog_dir}/posts/${basefile}/.sub2) echo "Add intro pic?" if [[ $(confirm) == true ]] then listandReturn ${blog_dir}/posts/${basefile}/static/ picvar=${basefile} fi echo -n Mysql password: read -s sqlpassword scp ${blog_dir}/posts/${basefile}/{intro.html,body.html} root@tovijaeschke.xyz:/var/lib/mysql-files/ scp ${blog_dir}/posts/${basefile}/static/* root@tovijaeschke.xyz:/usr/share/nginx/personal/static/ if [[ "$picvar" == "" ]] then ssh root@tovijaeschke.xyz "chown mysql:mysql /var/lib/mysql-files/* && chmod go+rw /var/lib/mysql-files/* && mysql -u root -p${sqlpassword} -D PersonalWebsite -e \"INSERT INTO Posts (subject,subject2,title,intro,body) VALUES ('${subvar1}', '${subvar2}', '${titlevar}', LOAD_FILE('/var/lib/mysql-files/intro.html'), LOAD_FILE('/var/lib/mysql-files/body.html'));\"" else ssh root@tovijaeschke.xyz "chown mysql:mysql /var/lib/mysql-files/* && chmod go+rw /var/lib/mysql-files/* && mysql -u root -p${sqlpassword} -D PersonalWebsite -e \"INSERT INTO Posts (subject,subject2,title,pic,intro,body) VALUES ('${subvar1}', '${subvar2}', '${titlevar}', '${picvar}', LOAD_FILE('/var/lib/mysql-files/intro.html'), LOAD_FILE('/var/lib/mysql-files/body.html'));\"" fi } preview() { mkdir -p /tmp/preview cp -r ${blog_dir}/.preview/* /tmp/preview/ listandReturn ${blog_dir}/posts title=$(cat ${blog_dir}/posts/${basefile}/title | tr -d '\n') intro=$(cat ${blog_dir}/posts/${basefile}/intro.html | tr -d '\n') body=$(cat ${blog_dir}/posts/${basefile}/body.html | tr -d '\n') cp -r ${blog_dir}/posts/${basefile}/static/ /tmp/preview sed -i .bak 's|TITLE_PREVIEW|'"${title}"'|g' /tmp/preview/post.html sed -i .bak 's|INTRO_PREVIEW|'"${intro}"'|g' /tmp/preview/post.html sed -i .bak 's|BODY_PREVIEW|'"${body}"'|g' /tmp/preview/post.html if [[ $(uname) == "Linux" ]]; then firefox /tmp/preview/post.html else open -a firefox -g /tmp/preview/post.html fi } deletedraft() { echo "Which draft would you like to delete?" listandReturn ${blog_dir}/posts echo "Are you sure you want to delete \"$(cat ${blog_dir}/posts/${basefile}/title)?\"" c=$(confirm) if [ ${c} != false ] then rm -rf ${blog_dir}/posts/${basefile} fi } deletepost() { echo -n Mysql password: read -s sqlpassword echo -e "\nWhich post would you like to delete?" ssh root@tovijaeschke.xyz "mysql -u root -p${sqlpassword} -D PersonalWebsite -B --disable-column-names -e \"SELECT id,title FROM Posts;\"" read -p "\nWhich post would you like to delete?" post ssh root@tovijaeschke.xyz "mysql -u root -p${sqlpassword} -D PersonalWebsite -e \"DELETE FROM Posts WHERE id=${post};\" && \ post=\$(mysql -B -u root -p${sqlpassword} -D PersonalWebsite --disable-column-names -e \"SELECT MAX(id) FROM Posts;\") && \ mysql -u root -p${sqlpassword} -D PersonalWebsite -e \"ALTER TABLE Posts AUTO_INCREMENT=\$post;\"" } helpmsg() { printf "\nBLOG UPLOAD SCRIPT\n\n\tn - new draft\n\tp - preview post\n\tu - upload post\n\tdd - delete draft\n\tdp - delete post\n\th - help message\n\n" } case "$1" in n*) newpost ;; p*) preview ;; u*) upload ;; dd*) deletedraft ;; dp*) deletepost ;; h*) helpmsg ;; *) helpmsg ;; esac