5 changed files with 175 additions and 0 deletions
			
			
		- 
					35tools/extract_pdf_image
 - 
					22tools/internet_check
 - 
					7tools/ip-lan-detect
 - 
					12tools/pgrep2
 - 
					99tools/shrinkpdf
 
@ -0,0 +1,35 @@ | 
			
		|||||
 | 
				#!/bin/bash | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				usage(){ | 
			
		||||
 | 
					echo "Usage: $(basename "$0") <PAGE|[START]-[END]> <FILE.pdf> [FOLDER|PREFIX]" | 
			
		||||
 | 
				} | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				[[ $# -lt 2 ]] && usage && exit 2 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				PAGE=$1 | 
			
		||||
 | 
				PDF=$2 | 
			
		||||
 | 
				DEST=${3:-.} | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				[[ ! -f "$PDF" ]] && echo "FAILURE: File <$PDF> not found!" && exit 3 | 
			
		||||
 | 
				file -bi "$PDF" | grep -q "application/pdf" | 
			
		||||
 | 
				[[ $? -ne 0 ]] && echo "FAILURE: File <$PDF> not detected as a valid application/pdf document!" && exit 3 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				if [[ -d $DEST ]];  then | 
			
		||||
 | 
					DEST="$DEST/extract" | 
			
		||||
 | 
				fi | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				if [[ "$PAGE" == *-* ]]; then | 
			
		||||
 | 
					START=$(echo "$PAGE" | cut -d '-' -f1) | 
			
		||||
 | 
					START=${START:-1} | 
			
		||||
 | 
					PAGINATION="-f $START" | 
			
		||||
 | 
					 | 
			
		||||
 | 
					END=$(echo "$PAGE" | cut -d '-' -f2) | 
			
		||||
 | 
					if [[ ! -z $END ]]; then | 
			
		||||
 | 
						PAGINATION="$PAGINATION -l $END" | 
			
		||||
 | 
					fi | 
			
		||||
 | 
				else | 
			
		||||
 | 
					PAGINATION="-f $PAGE -l $PAGE" | 
			
		||||
 | 
				fi | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				pdftoppm -jpeg $PAGINATION "$PDF" "$DEST" | 
			
		||||
@ -0,0 +1,22 @@ | 
			
		|||||
 | 
				#!/bin/bash | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				if ping -c1 1.1.1.1 2>&1 >/dev/null; then | 
			
		||||
 | 
				    connectivity=true | 
			
		||||
 | 
				else | 
			
		||||
 | 
				    connectivity=false | 
			
		||||
 | 
				fi | 
			
		||||
 | 
				echo "connectivity=$connectivity" | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				if ping -c1 google.fr 2>&1 >/dev/null; then | 
			
		||||
 | 
				    dns=true | 
			
		||||
 | 
				else | 
			
		||||
 | 
				    dns=false | 
			
		||||
 | 
				fi | 
			
		||||
 | 
				echo "dns=$dns" | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				if nmcli device status | grep -E "^wl" | grep -q connected; then | 
			
		||||
 | 
				    wifi=true | 
			
		||||
 | 
				else | 
			
		||||
 | 
				    wifi=false | 
			
		||||
 | 
				fi | 
			
		||||
 | 
				echo "wifi=$wifi" | 
			
		||||
@ -0,0 +1,7 @@ | 
			
		|||||
 | 
				#!/bin/bash | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				nmap -sn `ip route | tail -1 | cut -d ' ' -f1` | sed -n 'n;p' | cut -c 22- | head -n -1 | awk '{tmp=$1; $1=$2; $2=tmp; gsub("\\(","",$1); gsub("\\)","",$1); printf "%-15s %s\n", $1, $2}' | sed 's/^ *//' | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				# sed -n 'n;p' =>  FILTER odd lines | 
			
		||||
 | 
				# awk '{tmp=$1; $1=$2; $2=tmp; gsub("\\(","",$1); gsub("\\)","",$1); printf "%-15s %s\n", $1, $2}' => SWAP words and remove parenthesis | 
			
		||||
 | 
				# sed 's/^ *//' => REMOVE starting spaced | 
			
		||||
@ -0,0 +1,12 @@ | 
			
		|||||
 | 
				#!/bin/bash | 
			
		||||
 | 
				# Colorized pgrep | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				arg1="$1" | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				if [[ $arg1 = *"grep"* ]];then | 
			
		||||
 | 
					# remote the grep command itself from process list! | 
			
		||||
 | 
					ps -eo pid,ppid,uname:20,cmd | grep -v $$ | grep --color=auto "$arg1" | 
			
		||||
 | 
				else | 
			
		||||
 | 
					ps -eo pid,ppid,uname:20,cmd | grep -v 'grep' | grep --color=auto "$arg1" | 
			
		||||
 | 
				fi | 
			
		||||
@ -0,0 +1,99 @@ | 
			
		|||||
 | 
				#!/bin/sh | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				# http://www.alfredklomp.com/programming/shrinkpdf | 
			
		||||
 | 
				# Licensed under the 3-clause BSD license: | 
			
		||||
 | 
				# | 
			
		||||
 | 
				# Copyright (c) 2014, Alfred Klomp | 
			
		||||
 | 
				# All rights reserved. | 
			
		||||
 | 
				# | 
			
		||||
 | 
				# Redistribution and use in source and binary forms, with or without | 
			
		||||
 | 
				# modification, are permitted provided that the following conditions are met: | 
			
		||||
 | 
				# 1. Redistributions of source code must retain the above copyright notice, | 
			
		||||
 | 
				#    this list of conditions and the following disclaimer. | 
			
		||||
 | 
				# 2. Redistributions in binary form must reproduce the above copyright notice, | 
			
		||||
 | 
				#    this list of conditions and the following disclaimer in the documentation | 
			
		||||
 | 
				#    and/or other materials provided with the distribution. | 
			
		||||
 | 
				# 3. Neither the name of the copyright holder nor the names of its contributors | 
			
		||||
 | 
				#    may be used to endorse or promote products derived from this software | 
			
		||||
 | 
				#    without specific prior written permission. | 
			
		||||
 | 
				# | 
			
		||||
 | 
				# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | 
			
		||||
 | 
				# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
			
		||||
 | 
				# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 
			
		||||
 | 
				# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | 
			
		||||
 | 
				# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 
			
		||||
 | 
				# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 
			
		||||
 | 
				# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 
			
		||||
 | 
				# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 
			
		||||
 | 
				# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 
			
		||||
 | 
				# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 
			
		||||
 | 
				# POSSIBILITY OF SUCH DAMAGE. | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				shrink () | 
			
		||||
 | 
				{ | 
			
		||||
 | 
					gs					\ | 
			
		||||
 | 
					  -q -dNOPAUSE -dBATCH -dSAFER		\ | 
			
		||||
 | 
					  -sDEVICE=pdfwrite			\ | 
			
		||||
 | 
					  -dCompatibilityLevel=1.3		\ | 
			
		||||
 | 
					  -dPDFSETTINGS=/screen			\ | 
			
		||||
 | 
					  -dEmbedAllFonts=true			\ | 
			
		||||
 | 
					  -dSubsetFonts=true			\ | 
			
		||||
 | 
					  -dAutoRotatePages=/None		\ | 
			
		||||
 | 
					  -dColorImageDownsampleType=/Bicubic	\ | 
			
		||||
 | 
					  -dColorImageResolution=$3		\ | 
			
		||||
 | 
					  -dGrayImageDownsampleType=/Bicubic	\ | 
			
		||||
 | 
					  -dGrayImageResolution=$3		\ | 
			
		||||
 | 
					  -dMonoImageDownsampleType=/Bicubic	\ | 
			
		||||
 | 
					  -dMonoImageResolution=$3		\ | 
			
		||||
 | 
					  -sOutputFile="$2"			\ | 
			
		||||
 | 
					  "$1" | 
			
		||||
 | 
				} | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				check_smaller () | 
			
		||||
 | 
				{ | 
			
		||||
 | 
					# If $1 and $2 are regular files, we can compare file sizes to | 
			
		||||
 | 
					# see if we succeeded in shrinking. If not, we copy $1 over $2: | 
			
		||||
 | 
					if [ ! -f "$1" -o ! -f "$2" ]; then | 
			
		||||
 | 
						return 0; | 
			
		||||
 | 
					fi | 
			
		||||
 | 
					ISIZE="$(echo $(wc -c "$1") | cut -f1 -d\ )" | 
			
		||||
 | 
					OSIZE="$(echo $(wc -c "$2") | cut -f1 -d\ )" | 
			
		||||
 | 
					if [ "$ISIZE" -lt "$OSIZE" ]; then | 
			
		||||
 | 
						echo "Input smaller than output, doing straight copy" >&2 | 
			
		||||
 | 
						cp "$1" "$2" | 
			
		||||
 | 
					fi | 
			
		||||
 | 
				} | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				usage () | 
			
		||||
 | 
				{ | 
			
		||||
 | 
					echo "Reduces PDF filesize by lossy recompressing with Ghostscript." | 
			
		||||
 | 
					echo "Not guaranteed to succeed, but usually works." | 
			
		||||
 | 
					echo "  Usage: $1 infile [outfile] [resolution_in_dpi]" | 
			
		||||
 | 
				} | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				IFILE="$1" | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				# Need an input file: | 
			
		||||
 | 
				if [ -z "$IFILE" ]; then | 
			
		||||
 | 
					usage "$0" | 
			
		||||
 | 
					exit 1 | 
			
		||||
 | 
				fi | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				# Output filename defaults to "-" (stdout) unless given: | 
			
		||||
 | 
				if [ ! -z "$2" ]; then | 
			
		||||
 | 
					OFILE="$2" | 
			
		||||
 | 
				else | 
			
		||||
 | 
					OFILE="-" | 
			
		||||
 | 
				fi | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				# Output resolution defaults to 72 unless given: | 
			
		||||
 | 
				if [ ! -z "$3" ]; then | 
			
		||||
 | 
					res="$3" | 
			
		||||
 | 
				else | 
			
		||||
 | 
					res="72" | 
			
		||||
 | 
				fi | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				shrink "$IFILE" "$OFILE" "$res" || exit $? | 
			
		||||
 | 
				
 | 
			
		||||
 | 
				check_smaller "$IFILE" "$OFILE" | 
			
		||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue