blog
This commit is contained in:
		
							parent
							
								
									164a89ea3e
								
							
						
					
					
						commit
						4b6922f8e1
					
				@ -6,4 +6,4 @@ Lista plików i katalogów:
 | 
				
			|||||||
- add_user.sh --> skrypt służący do dodawania użytkownika
 | 
					- add_user.sh --> skrypt służący do dodawania użytkownika
 | 
				
			||||||
- del_user.sh --> skrypt służący do permanentnego usunięcia użytkownika
 | 
					- del_user.sh --> skrypt służący do permanentnego usunięcia użytkownika
 | 
				
			||||||
- cgenforce.sh --> skrypt uruchamiany z crona co minutę, podpina procesy wszystkich użytkowników pod cgroups w celu ustawienia limitów
 | 
					- cgenforce.sh --> skrypt uruchamiany z crona co minutę, podpina procesy wszystkich użytkowników pod cgroups w celu ustawienia limitów
 | 
				
			||||||
 | 
					- blog --> skrypt umożliwiający postowanie na blogu ! dostępny dla użytkowników !
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										97
									
								
								blog
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										97
									
								
								blog
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,97 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					TEMPLATE="/etc/tylda/post_html" 
 | 
				
			||||||
 | 
					TMP_MD="/tmp/post_md_$$.md"    
 | 
				
			||||||
 | 
					TMP_HTML="/tmp/post_html_$$.html"
 | 
				
			||||||
 | 
					sanitize_title() {
 | 
				
			||||||
 | 
					    local raw txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    raw=$1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    txt=$(echo "$raw" | perl -MText::Unidecode -CS -pe '$_=unidecode($_)')
 | 
				
			||||||
 | 
					    txt=$(echo "$txt" | sed 's/[^a-zA-Z0-9 \t]//g')
 | 
				
			||||||
 | 
					    txt=$(echo "$txt" | sed -E 's/[[:space:]]+/-/g')
 | 
				
			||||||
 | 
					    printf '%s' "$txt"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					awk_escape() {
 | 
				
			||||||
 | 
					    printf '%s' "$1" | sed -e 's/[\\/]/\\&/g'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ $# -ne 1 ]; then
 | 
				
			||||||
 | 
					    echo ""
 | 
				
			||||||
 | 
					    echo "blog - komenda do zarządzania twoim blogiem"
 | 
				
			||||||
 | 
					    echo ""
 | 
				
			||||||
 | 
					    echo "Użycie: $0 <plik z nowym postem>"
 | 
				
			||||||
 | 
					    echo ""
 | 
				
			||||||
 | 
					    echo "================================"
 | 
				
			||||||
 | 
					    echo "Aby skopiować do obecnego katalogu szablon posta użyj: $0 template"
 | 
				
			||||||
 | 
					    echo ""
 | 
				
			||||||
 | 
					    echo "W razie problemów skontaktuj się z administratorem."
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					SRCFILE=$1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$SRCFILE" == "template" ]; then
 | 
				
			||||||
 | 
					    cp /etc/tylda/post_template ./new_post
 | 
				
			||||||
 | 
					    echo "Szablon skopiowany do: $(pwd)/new_post."
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ! -f "$SRCFILE" ]; then
 | 
				
			||||||
 | 
					    echo "Błąd: nie znaleziono pliku '$SRCFILE'"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ! -f "$TEMPLATE" ]; then
 | 
				
			||||||
 | 
					    echo "Błąd: nie znaleziono pliku szablonu: '$TEMPLATE'. Skontaktuj się z administratorem."
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TITLE_LINE=$(sed -n '1{s/^#title:[[:space:]]*//p}' "$SRCFILE")
 | 
				
			||||||
 | 
					if [ -z "$TITLE_LINE" ]; then
 | 
				
			||||||
 | 
					    echo "Błąd: pierwsza linia pliku nie zaczyna się od '#title:'"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					TITLE=$(printf '%s' "$TITLE_LINE")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tail -n +2 "$SRCFILE" > "$TMP_MD"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if command -v pandoc >/dev/null 2>&1; then
 | 
				
			||||||
 | 
					    pandoc -f markdown -t html "$TMP_MD" -o "$TMP_HTML"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    echo "Błąd: pandoc nie zainstalowany. Nie można przeprowadzić konwersji do HTML."
 | 
				
			||||||
 | 
					    rm -f "$TMP_MD"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					CONTENT_HTML=$(cat "$TMP_HTML")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SAFE_TITLE=$(sanitize_title "$TITLE")
 | 
				
			||||||
 | 
					OUTFILE="${SAFE_TITLE}.php"
 | 
				
			||||||
 | 
					cp "$TEMPLATE" "$OUTFILE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CURRENT_USER=$(whoami)
 | 
				
			||||||
 | 
					CURRENT_DATE=$(date +"%Y-%m-%d %H:%M:%S")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TITLE_AWK=$(awk_escape "$TITLE")
 | 
				
			||||||
 | 
					USER_AWK=$(awk_escape "$CURRENT_USER")
 | 
				
			||||||
 | 
					DATE_AWK=$(awk_escape "$CURRENT_DATE")
 | 
				
			||||||
 | 
					CONTENT_AWK=$(awk_escape "$CONTENT_HTML")
 | 
				
			||||||
 | 
					awk -v title="$TITLE_AWK" \
 | 
				
			||||||
 | 
					    -v user="$USER_AWK" \
 | 
				
			||||||
 | 
					    -v date="$DATE_AWK" \
 | 
				
			||||||
 | 
					    -v content="$CONTENT_AWK" '
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    gsub(/<<TITLE>>/, title);
 | 
				
			||||||
 | 
					    gsub(/<<USER>>/,  user);
 | 
				
			||||||
 | 
					    gsub(/<<DATE>>/,  date);
 | 
				
			||||||
 | 
					    gsub(/<<CONTENT>>/, content);
 | 
				
			||||||
 | 
					    print;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					' "$OUTFILE" > "${OUTFILE}.tmp" && mv "${OUTFILE}.tmp" "$OUTFILE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					rm -f "$TMP_MD" "$TMP_HTML"
 | 
				
			||||||
 | 
					mv "$OUTFILE" "/home/$CURRENT_USER/public_html/blog/posts/"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Post utworzony i zapisany do: /home/$CURRENT_USER/public_html/blog/posts/$OUTFILE"
 | 
				
			||||||
 | 
					echo "Zobacz go tutaj: https://tylda.org/~$CURRENT_USER/blog/$OUTFILE"
 | 
				
			||||||
 | 
					exit 0
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user