89 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| #
 | |
| # patch 'Tausch' and 'Nextcloud' into dolphin's bookmarks
 | |
| #
 | |
| set -eu
 | |
| 
 | |
| file="${1:-$HOME/.local/share/user-places.xbel}"
 | |
| 
 | |
| [[ -e "$file" ]] || exit 0
 | |
| 
 | |
| if grep -q "Tausch\|Nextcloud" "$file" ; then
 | |
|     echo "Your Dolphin seems to already contain 'Tausch' and/or 'Nextcloud'." | tee "$file.lmn"
 | |
|     exit 0
 | |
| fi
 | |
| 
 | |
| id="$(grep ID "$file" | sed -E "s|^.+ID>([[:digit:]]+)/([[:digit:]]+)</ID.+$|\1:\2|" \
 | |
| 	    | sort -n -t: -k2 | tail -1 )"
 | |
| 
 | |
| if id | grep -q teachers; then
 | |
|   NETHOME=/srv/samba/schools/default-school/teachers/$USER
 | |
| else
 | |
|   NETHOME=(/srv/samba/schools/default-school/students/*/"$USER")
 | |
| fi
 | |
| [[ -d $NETHOME ]] || exit 0
 | |
| 
 | |
| IDENTITY="${id%%:*}"
 | |
| NUM0="${id##*:}"
 | |
| NUM1=$(( NUM0 + 1 ))
 | |
| NUM2=$(( NUM0 + 2 ))
 | |
| NUM3=$(( NUM0 + 3 ))
 | |
| 
 | |
| if [[ $HOME =~ ^/home/ ]]; then
 | |
|   HOMEONSERVER="+ <bookmark href=\"file://$NETHOME\">
 | |
| +  <title>Home@Server</title>
 | |
| +  <info>
 | |
| +   <metadata owner=\"http://freedesktop.org\">
 | |
| +    <bookmark:icon name=\"user-home-symbolic\"/>
 | |
| +   </metadata>
 | |
| +   <metadata owner=\"http://www.kde.org\">
 | |
| +    <ID>$IDENTITY/${NUM1}</ID>
 | |
| +    <isSystemItem>true</isSystemItem>
 | |
| +   </metadata>
 | |
| +  </info>
 | |
| + </bookmark>"
 | |
| else
 | |
|   HOMEONSERVER=$'+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+'
 | |
| fi
 | |
| 
 | |
| patch="
 | |
| --- a/$file
 | |
| +++ b/$file
 | |
| @@ -98,9 +98,45 @@
 | |
|      <isSystemItem>true</isSystemItem>
 | |
|     </metadata>
 | |
|    </info>
 | |
|   </bookmark>
 | |
| $HOMEONSERVER
 | |
| + <bookmark href=\"file:///srv/samba/schools/default-school/share\">
 | |
| +  <title>Tausch</title>
 | |
| +  <info>
 | |
| +   <metadata owner=\"http://freedesktop.org\">
 | |
| +    <bookmark:icon name=\"folder-publicshare\"/>
 | |
| +   </metadata>
 | |
| +   <metadata owner=\"http://www.kde.org\">
 | |
| +    <ID>$IDENTITY/${NUM2}</ID>
 | |
| +    <isSystemItem>true</isSystemItem>
 | |
| +   </metadata>
 | |
| +  </info>
 | |
| + </bookmark>
 | |
| + <bookmark href=\"file:///lmn/media/$USER/nextcloud\">
 | |
| +  <title>Nextcloud</title>
 | |
| +  <info>
 | |
| +   <metadata owner=\"http://freedesktop.org\">
 | |
| +    <bookmark:icon name=\"folder-cloud\"/>
 | |
| +   </metadata>
 | |
| +   <metadata owner=\"http://www.kde.org\">
 | |
| +    <ID>$IDENTITY/${NUM3}</ID>
 | |
| +    <isSystemItem>true</isSystemItem>
 | |
| +   </metadata>
 | |
| +  </info>
 | |
| + </bookmark>
 | |
|   <bookmark href=\"remote:/\">
 | |
|    <title>Network</title>
 | |
|    <info>
 | |
|     <metadata owner=\"http://freedesktop.org\">
 | |
|      <bookmark:icon name=\"folder-network\"/>
 | |
| "
 | |
| 
 | |
| echo "$patch" | patch -z '.lmn' --fuzz=0 --backup "$file"
 |