Tests, scripts, moved install.sh to scripts folder

This commit is contained in:
2022-12-11 17:30:10 +02:00
parent 6190be3bdd
commit d5757d231f
8 changed files with 224 additions and 103 deletions

View File

@@ -1,29 +1,27 @@
#!/usr/bin/env bash
#
# Dotfiles and install helper
# Dotfiles manager and install helper
# (c) Ismo Vuorinen <https://github.com/ivuorinen> 2022
# Licensed under MIT, see LICENSE
#
# shellcheck source-path=SCRIPTDIR
# shellcheck source-path=$HOME/.dotfiles/local/bin
#
# Helper variables, override with ENVs like `VERBOSE=1 helpers.sh help`
# Helper variables, override with ENVs like `VERBOSE=1 dotfiles help`
: "${VERBOSE:=0}"
: "${DOTFILES:=$HOME/.dotfiles}"
: "${INSTALL_SCRIPT:=$DOTFILES/install.sh}"
: "${INSTALL_SCRIPT:=$DOTFILES/scripts/install.sh}"
: "${BREWFILE:=$DOTFILES/Brewfile}"
function usage
{
echo $"Usage: $0 [install | brew | dotfiles]"
echo $" All commands have their own subcommands."
echo $" When in doubt run the subcommand to show list."
}
SCRIPT=$(basename "$0")
function section_install
{
USAGE_PREFIX="Usage: $0 install"
USAGE_PREFIX="-> $SCRIPT install"
case "$1" in
all)
bash "$DOTFILES/scripts/settler.sh" && echo "🎉 Done!"
;;
antigen)
curl -L git.io/antigen > "$DOTFILES/config/antigen.zsh" && echo "🎉 Done!"
;;
@@ -44,7 +42,7 @@ function section_install
function section_brew
{
USAGE_PREFIX="Usage: $0 brew"
USAGE_PREFIX="-> $SCRIPT brew"
if ! command -v brew &> /dev/null; then
echo "brew could not be found, please install it first"
@@ -79,18 +77,18 @@ function section_brew
function section_dotfiles
{
USAGE_PREFIX="Usage: $0 dotfiles"
USAGE_PREFIX="-> $SCRIPT dotfiles"
case "$1" in
link)
rcup -B "$HOSTNAME" -v && echo "🎉 Done!"
;;
update)
# Updates .dotfiles/install.sh and formats it
# Updates .dotfiles/scripts/install.sh and formats it
rcup -B 0 -g \
| tee "$INSTALL_SCRIPT" 1> /dev/null \
&& shfmt -w -l "$INSTALL_SCRIPT" \
&& sed -i '' "s|$HOME|\~|g" "$INSTALL_SCRIPT" \
&& sed -i '' "s|$HOME|\$HOME|g" "$INSTALL_SCRIPT" \
&& echo "🎉 Done!"
;;
shfmt)
@@ -123,6 +121,18 @@ function section_dotfiles
esac
}
function usage
{
echo $"Usage: $SCRIPT [install | brew | dotfiles]"
echo $" All commands have their own subcommands."
echo ""
section_install
echo ""
section_brew
echo ""
section_dotfiles
}
# The main loop. first keyword after $0 triggers section, or help.
case "$1" in
install) section_install "$2" ;;

View File

@@ -0,0 +1,43 @@
#!/usr/bin/env bash
#
# Backup local MySQL Database tables with certain prefix.
# Ismo Vuorinen <https://github.com/ivuorinen> 2018
#
SCRIPT=$(basename "$0")
PREFIX=$1
FILENAME=$2
DATABASE=$3
: "${VERBOSE:=0}"
: "${DEFAULT_DATABASE:="wordpress"}"
if [ -z "${PREFIX}" ]; then
echo "(!) TABLE_PREFIX (first argument) is missing"
echo "(>) Usage: $SCRIPT <TABLE_PREFIX> <FILENAME_PREFIX> [<DATABASE>]"
echo " * <TABLE_PREFIX> = database table prefix, e.g. 'wp_'"
echo " * <FILENAME_PREFIX> = FILENAME prefix, defaults to table prefix. Use something descriptive e.g. 'wordpress'"
echo " * <DATABASE> = [optional] Third argument DATABASE, defaults to '$DEFAULT_DATABASE'."
exit 0
fi
if [ -z "${FILENAME}" ]; then
# echo "FILENAME (second argument) is missing, using PREFIX ($PREFIX)"
FILENAME=$PREFIX
fi
if [ -z "${DATABASE}" ]; then
# echo "DATABASE (third argument) is missing, using default ($DEFAULT_DATABASE)"
DATABASE=$DEFAULT_DATABASE
fi
TIMESTAMP=$(date "+%Y%m%d_%H%M%S")
FILENAME_TIMESTAMP="${DATABASE}_${FILENAME}_${TIMESTAMP}.sql"
mysqldump \
${DATABASE} \
"$(
echo "show tables like '${PREFIX}%';" \
| mysql ${DATABASE} \
| sed '/Tables_in/d'
)" > "${FILENAME_TIMESTAMP}"

View File

@@ -1,6 +1,16 @@
#!/usr/bin/env bash
#
# Check git repo's files .gitattributes and are all of them mapped.
# Ismo Vuorinen <https://github.com/ivuorinen> 2022
#
if ! command -v git &> /dev/null; then
echo "git could not be found, please install it first"
exit
fi
missing_attributes=$(git ls-files | git check-attr -a --stdin | grep "text: auto")
if [[ "$missing_attributes" ]]; then
echo ".gitattributes rule missing for the following files:"
echo "$missing_attributes"

View File

@@ -0,0 +1,52 @@
#!/usr/bin/env bash
##
# This script contains helper for sha256 validating your downloads
#
# Source: https://gist.github.com/onnimonni/b49779ebc96216771a6be3de46449fa1
# Author: Onni Hakala
# License: MIT
#
# Updated by Ismo Vuorinen <https://github.com/ivuorinen> 2022
##
if ! command -v sha256 &> /dev/null; then
echo "git could not be found, please install it first"
exit
fi
# Stop program and give error message
# $1 - error message (string)
function error
{
echo "(!) ERROR: $1"
exit 1
}
# return sha256sum for file
# $1 - filename (string)
function get_sha256sum
{
sha256sum "$1" | head -c 64
}
# Good variable names pls
filename=$1
file_hash=$2
# Check input
if [ -z "$filename" ]; then
error "You need to provide filename in first parameter"
fi
if [ -z "$file_hash" ]; then
error "You need to provide sha256sum in second parameter"
fi
# Check if the file is valid
if [ ! -f "$filename" ]; then
error "File $filename doesn't exist"
elif [ "$(get_sha256sum "$filename")" = "$file_hash" ]; then
echo "(*) Success: $filename matches provided sha256sum"
else
error "$filename doesn't match provided sha256sum"
fi