version: 0.2

+ replaced git info with "native git commands"
+ makefile created (install and uninstall recipes)
+ replace some X lines with one function (scan_file_alert)

Squashed commit of the following:

commit e397edce0ce785f3c8bd6cdca21cefc8ceab380d
Author: Umgeher Torgersen <me@umgeher.org>
Date:   Tue May 2 12:03:05 2023 +0000

    makefile! install and uninstall recipes

commit 4c40647590e80297f05dbd2c072d80c90e45e8b6
Author: Umgeher Torgersen <me@umgeher.org>
Date:   Tue May 2 12:01:14 2023 +0000

    git-info replaced

commit 96702ab0efb760c9261eb2a24351c869b2202258
Author: Umgeher Torgersen <me@umgeher.org>
Date:   Fri Apr 28 20:29:30 2023 +0000

    size pack added

commit 123ee4e8b61e583d8f37bc8fee5d1fb0abb9d9f5
Author: Umgeher Torgersen <me@umgeher.org>
Date:   Fri Apr 28 20:10:04 2023 +0000

    better code: scan file alert
This commit is contained in:
Umgeher Torgersen 2023-05-02 12:05:27 +00:00
parent ed8045d0ac
commit 4e4cc31c13
2 changed files with 34 additions and 42 deletions

66
gseeker
View file

@ -2,7 +2,7 @@
### DEFINE
VERSION="0.1"
VERSION="0.2"
GSEEKER_HOME="$HOME/.gseeker"
GSEEKER_REPORTS="$GSEEKER_HOME/reports"
GSEEKER_TMPDIR="$GSEEKER_HOME/tmp/pid_$$"
@ -190,11 +190,12 @@ rep_stats() {
DATE=$(date +%s)
echo "date,$DATE" >> $FILE
echo "version,$VERSION" >> $FILE
echo "url,$(cd $GSEEKER_TMPDIR/$1/$2 ; git info | grep 'remote.origin.url=' | cut -f2 -d'=')" >> $FILE
echo "head,$(cd $GSEEKER_TMPDIR/$1/$2 ; git info | grep ' origin/HEAD' | sed 's/ origin\/HEAD -> origin\///g')" >> $FILE
echo "commit,last,$(cd $GSEEKER_TMPDIR/$1/$2 ; git info | grep 'commit ' | sed 's/commit //g')" >> $FILE
echo "url,$(cd $GSEEKER_TMPDIR/$1/$2 ; git config --list | grep 'remote.origin.url=' | cut -f2 -d'=')" >> $FILE
echo "head,$(cd $GSEEKER_TMPDIR/$1/$2 ; git branch -r | grep ' origin/HEAD' | sed 's/ origin\/HEAD -> origin\///g')" >> $FILE
echo "commit,last,$(cd $GSEEKER_TMPDIR/$1/$2 ; git log --max-count=1 --pretty=short | grep 'commit ' | sed 's/commit //g')" >> $FILE
echo "size,pack,$(cd $GSEEKER_TMPDIR/$1/$2 ; git count-objects -vH | grep "size-pack" | sed 's/size-pack: //g')" >> $FILE
for BRANCH in $(cd $GSEEKER_TMPDIR/$1/$2 ; git info | grep ' origin/' | grep -v 'HEAD' | sed 's/origin\///g'); do
for BRANCH in $(cd $GSEEKER_TMPDIR/$1/$2 ; git branch -r | grep ' origin/' | grep -v 'HEAD' | sed 's/origin\///g'); do
echo "branch,$BRANCH" >> $FILE
done
@ -204,55 +205,36 @@ rep_stats() {
EMAIL=$(echo $LINE | cut -f2 -d'<' | sed 's/>//g')
echo "shortlog,$EMAIL,$NAME,$COMMITS" >> $FILE
done
$(cat $GSEEKER_TRACKER | grep "commit,number," | grep ",$2,$1" | cut -f3 -d, > $GSEEKER_TMPDIR/tracker_$2_$1)
$(cd $GSEEKER_TMPDIR/$1/$2 ; git log --oneline | nl | sort -rn | cut -f2 | cut -d" " -f1 > $GSEEKER_TMPDIR/cn_$2_$1)
for CNUMBER in $(grep -Fvf $GSEEKER_TMPDIR/tracker_$2_$1 $GSEEKER_TMPDIR/cn_$2_$1); do
$(cd $GSEEKER_TMPDIR/$1/$2 ; git checkout $CNUMBER)
echo "commit,number,$CNUMBER" >> $FILE
F_PEM=$(cd $GSEEKER_TMPDIR/$1/$2 ; find . -type f -name "*.pem")
if [[ -n $F_PEM ]]; then
for TF in $F_PEM; do
HASH=$(cd $GSEEKER_TMPDIR/$1/$2 ; sha1 -q $TF)
if [[ -z $(cat $FILE | grep "file,alert,$HASH,") ]]; then
echo "file,alert,$HASH,$CNUMBER,$TF" >> $FILE
fi
done
fi
F_ZIP=$(cd $GSEEKER_TMPDIR/$1/$2 ; find . -type f -name "*.zip")
if [[ -n $F_ZIP ]]; then
for TF in $F_ZIP; do
HASH=$(cd $GSEEKER_TMPDIR/$1/$2 ; sha1 -q $TF)
if [[ -z $(cat $FILE | grep "file,alert,$HASH,") ]]; then
echo "file,alert,$HASH,$CNUMBER,$TF" >> $FILE
fi
done
fi
F_PUB=$(cd $GSEEKER_TMPDIR/$1/$2 ; find . -type f -name "*.pub")
if [[ -n $F_PUB ]]; then
for TF in $F_PUB; do
HASH=$(cd $GSEEKER_TMPDIR/$1/$2 ; sha1 -q $TF)
if [[ -z $(cat $FILE | grep "file,alert,$HASH,") ]]; then
echo "file,alert,$HASH,$CNUMBER,$TF" >> $FILE
fi
done
fi
scan_file_alert $1 $2
echo "commit,number,$CNUMBER,$2,$1" >> $GSEEKER_TRACKER
done
cp $FILE "$GSEEKER_REPORTS/report-$DATE-$2-$1.gseeker"
}
scan_file_alert() {
for FTYPE in "*.pem" "*.zip" "*.pub"; do
FLIST=$(cd $GSEEKER_TMPDIR/$1/$2 ; find . -type f -name $FTYPE)
if [[ -n $FLIST ]]; then
for TF in $FLIST; do
HASH=$(cd $GSEEKER_TMPDIR/$1/$2 ; sha1 -q $TF)
if [[ -z $(cat $FILE | grep "file,alert,$HASH,") ]]; then
echo "file,alert,$HASH,$CNUMBER,$TF" >> $FILE
fi
done
fi
done
}
setup() {
test -d $GSEEKER_HOME || (mkdir -p $GSEEKER_HOME)
test -d $GSEEKER_REPORTS || (mkdir -p $GSEEKER_REPORTS)

10
makefile Normal file
View file

@ -0,0 +1,10 @@
.PHONY: install uninstall
.MAIN: install
install:
mkdir -p ~/bin
cp -v gseeker ~/bin
chmod +x ~/bin/gseeker
uninstall:
rm -vf ~/bin/gseeker