Skip to content
Snippets Groups Projects
Commit 95bc6fa8 authored by nimrod's avatar nimrod
Browse files

- Added pre-commit checks, correct found issues.

- Check for repo before running update-requirements.
parent aac9a570
No related branches found
No related tags found
No related merge requests found
# shellcheck disable=SC2148,SC1091
# If not running interactively, don't do anything # If not running interactively, don't do anything
[ -z "$PS1" ] && return [ -z "$PS1" ] && return
...@@ -11,14 +12,14 @@ then ...@@ -11,14 +12,14 @@ then
shopt -s histappend shopt -s histappend
shopt -s checkwinsize shopt -s checkwinsize
shopt -s cmdhist shopt -s cmdhist
if [ -f /etc/bash_completion ]; then [ -f /etc/bash_completion ] && . /etc/bash_completion
. /etc/bash_completion
fi
[ -d $HOME/.bash_completion.d ] && . $HOME/.bash_completion.d/* # shellcheck disable=SC2086,SC1090
[ -d "$HOME/.bash_completion.d" ] && . $HOME/.bash_completion.d/*
# shellcheck disable=SC1090
# added by travis gem # added by travis gem
[ -f $HOME/.travis/travis.sh ] && source $HOME/.travis/travis.sh [ -f "$HOME/.travis/travis.sh" ] && . "$HOME/.travis/travis.sh"
fi fi
# make less more friendly for non-text input files, see lesspipe(1) # make less more friendly for non-text input files, see lesspipe(1)
...@@ -31,15 +32,13 @@ fi ...@@ -31,15 +32,13 @@ fi
# enable color support of ls and also add handy aliases # enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then if [ -x /usr/bin/dircolors ]; then
eval "`dircolors -b`" eval "$(dircolors -b)"
alias ls='ls --color=auto' alias ls='ls --color=auto'
alias grep='grep --color=auto' alias grep='grep --color=auto'
fi fi
if [ -f /usr/local/bin/virtualenvwrapper.sh ] # shellcheck disable=SC2142
then [ -f /usr/local/bin/virtualenvwrapper.sh ] && . /usr/local/bin/virtualenvwrapper.sh
. /usr/local/bin/virtualenvwrapper.sh
fi
export REPREPRO_BASE_DIR=$HOME/Documents/Shore/debian-repository export REPREPRO_BASE_DIR=$HOME/Documents/Shore/debian-repository
export EDITOR=vim export EDITOR=vim
...@@ -60,6 +59,7 @@ alias deborphan='deborphan -a --no-show-section --ignore-suggests' ...@@ -60,6 +59,7 @@ alias deborphan='deborphan -a --no-show-section --ignore-suggests'
alias aptitude='aptitude --display-format %p --quiet' alias aptitude='aptitude --display-format %p --quiet'
alias obsolete='aptitude search ?obsolete' alias obsolete='aptitude search ?obsolete'
alias missing-recommends="aptitude search '~RBrecommends:~i'" alias missing-recommends="aptitude search '~RBrecommends:~i'"
# shellcheck disable=2142
alias deinstalled="dpkg --get-selections | awk '\$2==\"deinstall\" {print \$1}'" alias deinstalled="dpkg --get-selections | awk '\$2==\"deinstall\" {print \$1}'"
alias ansible-local='ansible localhost -c local -i localhost,' alias ansible-local='ansible localhost -c local -i localhost,'
alias ansible-local-playbook='ansible-playbook -i localhost, -c local' alias ansible-local-playbook='ansible-playbook -i localhost, -c local'
...@@ -76,24 +76,27 @@ alias 0-day-cleanup='ssh xbmc.shore.co.il "sudo -u debian-transmission find /srv ...@@ -76,24 +76,27 @@ alias 0-day-cleanup='ssh xbmc.shore.co.il "sudo -u debian-transmission find /srv
alias httpbin='tox -c $HOME/.tox.ini.httpbin --' alias httpbin='tox -c $HOME/.tox.ini.httpbin --'
deduce-aws-region () { deduce-aws-region () {
export AWS_DEFAULT_REGION="$(curl --silent \ AWS_DEFAULT_REGION="$(curl --silent \
http://169.254.169.254/latest/dynamic/instance-identity/document \ http://169.254.169.254/latest/dynamic/instance-identity/document \
| sed -n 's/ *"region" : "\([a-z0-9\-]*\)"/\1/gp')" | sed -n 's/ *"region" : "\([a-z0-9\-]*\)"/\1/gp')"
export AWS_DEFAULT_REGION
echo "$AWS_DEFAULT_REGION" echo "$AWS_DEFAULT_REGION"
} }
ssh-keyscan-add () { ssh-keyscan-add () {
(ssh-keyscan $@; cat $HOME/.ssh/known_hosts) | sort -u >> $HOME/.ssh/known_hosts # shellcheck disable=SC2094
(ssh-keyscan "$@"; cat "$HOME/.ssh/known_hosts") | sort -u >> "$HOME/.ssh/known_hosts"
} }
gen-csr () { gen-csr () {
openssl req -new -newkey rsa:4096 -nodes -out $1.csr -keyout $1.key openssl req -new -newkey rsa:4096 -nodes -out "$1.csr" -keyout "$1.key"
} }
docker-dev () { docker-dev () {
local root="$(git rev-parse --show-toplevel)" local root repo uid
local repo="$(basename $root)" root="$(git rev-parse --show-toplevel)"
local uid="$(id -u)" repo="$(basename "$root")"
uid="$(id -u)"
docker build -t "$repo:dev" "$root" docker build -t "$repo:dev" "$root"
docker run --interactive \ docker run --interactive \
--publish-all \ --publish-all \
...@@ -102,7 +105,7 @@ docker-dev () { ...@@ -102,7 +105,7 @@ docker-dev () {
--tty \ --tty \
--volume "$HOME:$HOME" \ --volume "$HOME:$HOME" \
--volume "$root:$root" \ --volume "$root:$root" \
--user $uid \ --user "$uid" \
--workdir "$PWD" "$repo:dev" /bin/sh -l --workdir "$PWD" "$repo:dev" /bin/sh -l
} }
...@@ -113,14 +116,19 @@ sync-comics () { ...@@ -113,14 +116,19 @@ sync-comics () {
} }
update-requirements () { update-requirements () {
cd $(git rev-parse --show-toplevel) reporoot="$(git rev-parse --show-toplevel) || (echo Failed to find Git repo.
for file in $(git ls-files *requirements*.txt) && return 1)"
# shellcheck disable=SC2164
cd "$reporoot"
for file in $(git ls-files "*requirements*.txt")
do do
pur --requirement $file pur --requirement "$file"
git add $file git add "$file"
done done
git commit -m"- Updated requirements." git commit -m"- Updated requirements."
# shellcheck disable=SC2164
cd - > /dev/null cd - > /dev/null
} }
. $HOME/Documents/Shore/bundle_certs/bundle_certs # shellcheck disable=SC1090
. "$HOME/Documents/Shore/bundle_certs/bundle_certs"
- repo: git://github.com/pre-commit/pre-commit-hooks
sha: v0.7.1
hooks:
- id: check-added-large-files
- id: check-merge-conflict
- id: flake8
files: \.pythonstartup|Documents/Shore/cleanup/vagrant-.*
- repo: https://www.shore.co.il/git/shell-pre-commit/
sha: v0.4.0
hooks:
- id: shell-lint
files: \.bash_completion\.d/molecule|\.bashrc|\.githooks/post-merge|\.profile|Documents/Shore/cleanup/.*-clean|Documents/train-wifi\.sh
- id: shellcheck
files: \.bashrc|\.githooks/post-merge|\.profile|Documents/Shore/cleanup/docker-.*|Documents/train-wifi\.sh
# shellcheck disable=SC2148
export ENV="$HOME/.bashrc" export ENV="$HOME/.bashrc"
#!/bin/sh #!/bin/sh
docker rm $(docker ps --quiet --filter=status=exited) 2>/dev/null || true docker rm "$(docker ps --quiet --filter=status=exited)" 2>/dev/null || true
docker rm $(docker ps --quiet --filter=status=created) 2>/dev/null || true docker rm "$(docker ps --quiet --filter=status=created)" 2>/dev/null || true
docker rmi $(docker images --quiet --filter=dangling=true) 2>/dev/null || true docker rmi "$(docker images --quiet --filter=dangling=true)" 2>/dev/null || true
docker volume rm $(docker volume ls --quiet --filter=dangling=true) 2>/dev/null || true docker volume rm "$(docker volume ls --quiet --filter=dangling=true)" 2>/dev/null || true
#!/bin/sh -e #!/bin/sh -e
for image in $(docker images | awk '$1!="<none>" && NR>1 {printf("%s:%s\n", $1, $2)}') for image in $(docker images | awk '$1!="<none>" && NR>1 {printf("%s:%s\n", $1, $2)}')
do do
docker pull $image || echo "Skipping..." docker pull "$image" || echo "Skipping..."
done done
...@@ -29,17 +29,17 @@ ...@@ -29,17 +29,17 @@
set -eu set -eu
die () { die () {
logger -p user.err $@ logger -p user.err "$@"
exit 1 exit 1
} }
iswifi () { iswifi () {
# TODO: Check if a network interface is passed. # TODO: Check if a network interface is passed.
[ "$(nmcli --terse --fields GENERAL.TYPE device show $1 | awk -F: '{print $2}')" = 'wifi' ] [ "$(nmcli --terse --fields GENERAL.TYPE device show "$1" | awk -F: '{print $2}')" = 'wifi' ]
} }
wifi_connection () { wifi_connection () {
nmcli --terse --fields GENERAL.CONNECTION device show $1 | awk -F: '{print $2}' nmcli --terse --fields GENERAL.CONNECTION device show "$1" | awk -F: '{print $2}'
} }
if [ $# -ne 2 ] if [ $# -ne 2 ]
...@@ -58,14 +58,14 @@ which nmcli > /dev/null || die "Can't login to the train wifi, nmcli is not inst ...@@ -58,14 +58,14 @@ which nmcli > /dev/null || die "Can't login to the train wifi, nmcli is not inst
[ "$action" = 'up' ] || die "Can't login to the train wifi, action $action isn't up." [ "$action" = 'up' ] || die "Can't login to the train wifi, action $action isn't up."
iswifi "$interface" || die "Can't login to the train wifi, interface $interface isn't wifi." iswifi "$interface" || die "Can't login to the train wifi, interface $interface isn't wifi."
connection="$(wifi_connection $interface)" connection="$(wifi_connection "$interface")"
[ "$connection" = "ISRAEL-RAILWAYS" ] || die "Can't login to the train wifi, wifi network $connection isn't ISRAEL-RAILWAYS." [ "$connection" = "ISRAEL-RAILWAYS" ] || die "Can't login to the train wifi, wifi network $connection isn't ISRAEL-RAILWAYS."
redirect_url="$(curl --output /dev/null --silent --write-out '%{redirect_url}' http://google.com/)" redirect_url="$(curl --output /dev/null --silent --write-out '%{redirect_url}' http://google.com/)"
logger -p user.debug "Train wifi redirect url: $redirect_url" logger -p user.debug "Train wifi redirect url: $redirect_url"
login_ip="$(echo "$redirect_url" | grep --only-matching '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*')" || die "Can't login to the train wifi, redirect URL doesn't contain an IP." login_ip="$(echo "$redirect_url" | grep --only-matching '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*')" || die "Can't login to the train wifi, redirect URL doesn't contain an IP."
logger -p user.debug "Train wifi login IP: $ip" logger -p user.debug "Train wifi login IP: $login_ip"
login_url="http://$ip/loginHandler.php?allowAccess=true" login_url="http://$login_ip/loginHandler.php?allowAccess=true"
logger -p user.debug "Train wifi login URL: $login_url" logger -p user.debug "Train wifi login URL: $login_url"
http_code="$(curl --output /dev/null --silent --write-out '%{http_code}' "$login_url")" http_code="$(curl --output /dev/null --silent --write-out '%{http_code}' "$login_url")"
logger -p user.debug "Train wifi login HTTP code: $http_code" logger -p user.debug "Train wifi login HTTP code: $http_code"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment