Browse Source

tools

bookworm
pvincent 2 years ago
parent
commit
332b5171b8
  1. 35
      tools/extract_pdf_image
  2. 22
      tools/internet_check
  3. 7
      tools/ip-lan-detect
  4. 12
      tools/pgrep2
  5. 99
      tools/shrinkpdf

35
tools/extract_pdf_image

@ -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"

22
tools/internet_check

@ -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"

7
tools/ip-lan-detect

@ -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

12
tools/pgrep2

@ -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

99
tools/shrinkpdf

@ -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"
Loading…
Cancel
Save