41 lines
		
	
	
		
			767 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			767 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| # Encrypt/decrypt and compress folders with gpg+tar.
 | |
| # Usage:
 | |
| #   clump foldername           # packs
 | |
| #   clump foldername.clump     # unpacks
 | |
| 
 | |
| set -e
 | |
| if (($# == 0)); then
 | |
|   >&2 echo "Usage: $0 <FILE|DIRECTORY> [DEST]"
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| ext='clump'
 | |
| target="$1"
 | |
| cmd=
 | |
| if [[ -f $target ]]; then
 | |
|   cmd=unpack
 | |
| elif [[ -d $target ]]; then
 | |
|   cmd=pack
 | |
| else
 | |
|   >&2 echo "Not a valid target: '$target'"
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| case $cmd in
 | |
|   p|pack)
 | |
|     if [[ -f $target.$ext ]]; then
 | |
|       >&2 echo "Destination file already exists"
 | |
|       exit 2
 | |
|     fi
 | |
|     tar -pcvf - "$target" | gpg -c > "$target.$ext"
 | |
|     echo "Packed into $target.$ext"
 | |
|     ;;
 | |
|   u|unpack)
 | |
|     tmpfile=$(mktemp)
 | |
|     gpg -d "$target" > "$tmpfile" && tar -pxvf "$tmpfile"
 | |
|     rm -f "$tmpfile"
 | |
|     ;;
 | |
| esac
 |