diff --git a/bin/cyberchef b/bin/cyberchef index 6e8d6aa..d05ac72 100755 --- a/bin/cyberchef +++ b/bin/cyberchef @@ -1,3 +1,11 @@ #!/bin/bash -exec xdg-open $(dirname $0)/cyberchef.html +set -u + +CHEF_FILE=${HOME}/tools/cyberchef/cyberchef.html + +if [ ! -f ${CHEF_FILE} ] ; then + ${HOME}/bin/install_tool cyberchef +fi + +exec xdg-open ${CHEF_FILE} diff --git a/bin/cyberchef.html b/bin/cyberchef.html deleted file mode 100644 index 25d6f4d..0000000 --- a/bin/cyberchef.html +++ /dev/null @@ -1,382 +0,0 @@ - -CyberChef Edit
Operations
    Recipe
      Input
      Output
      \ No newline at end of file diff --git a/bin/install_tool b/bin/install_tool index c523640..a7ea69a 100755 --- a/bin/install_tool +++ b/bin/install_tool @@ -31,10 +31,16 @@ if [ $# -ne 1 ] ; then fi TOOL=${1} +function die { + echo $* >/dev/stderr + return 1 +} + function install_pkgs { if [ ${PACKAGES} -eq 0 ] ; then return 0 fi + # TODO: check if packages are already installed if [ `id -u` -ne "0" ] ; then sudo apt-get -y install $* || ( echo -n "Unable to install packages, please ensure these " >/dev/stderr @@ -50,6 +56,7 @@ function download { SRC=${1} DST=${2} echo -n "Downloading ${SRC} to ${DST}..." >&2 + # TODO: consider curl instead? wget --no-server-response -q -O ${DST} --content-disposition ${SRC} echo " done." >&2 } @@ -137,8 +144,7 @@ case ${TOOL} in fi ;; mitmproxy) - # Find a better way to get the latest - src="https://github.com/mitmproxy/mitmproxy/releases/download/v2.0.1/mitmproxy-2.0.1-linux.tar.gz" + src=$(python -c 'import urllib2; import json; print(filter(lambda x: x["name"].endswith("-linux.tar.gz"), json.load(urllib2.urlopen("https://api.github.com/repos/mitmproxy/mitmproxy/releases/latest"))["assets"])[0]["browser_download_url"])') download ${src} /tmp/mitmproxy.tar.gz mkdir -p ${DESTDIR} tar zx -C ${DESTDIR} -f /tmp/mitmproxy.tar.gz @@ -176,6 +182,11 @@ case ${TOOL} in /etc/udev/rules.d/77-mm-usb-device-blacklist.rules && udevadm control --reload-rules" ;; + cyberchef) + mkdir -p ${DESTDIR} + src=$(python -c 'import urllib2; import json; print(filter(lambda x: x["name"]=="cyberchef.htm", json.load(urllib2.urlopen("https://api.github.com/repos/gchq/CyberChef/releases/latest"))["assets"])[0]["browser_download_url"])') + download ${src} ${DESTDIR}/cyberchef.html + ;; *) echo "Unknown tool: ${TOOL}" >/dev/stderr exit 1 diff --git a/dotfiles/zshrc b/dotfiles/zshrc index 70727d2..0a31fe4 100755 --- a/dotfiles/zshrc +++ b/dotfiles/zshrc @@ -1,7 +1,7 @@ # For interactive shells -HISTFILE=~/.histfile -HISTSIZE=1000 -SAVEHIST=1000 +HISTFILE=~/.zhistory +HISTSIZE=10000 +SAVEHIST=10000 setopt appendhistory autocd autopushd extendedglob nohup nomatch histignorespace histlexwords histverify cbases unsetopt beep histbeep listbeep flowcontrol bindkey -e