aboutsummaryrefslogtreecommitdiff
path: root/utils/inst
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2017-05-07 11:43:33 +0200
committerKarel Kočí <cynerd@email.cz>2017-05-07 11:49:39 +0200
commit36e9201b0fd130f3aaf924b06bf29c0e46c88743 (patch)
tree20e48fafa829da0a2aeac92e54a0e355b21d4f84 /utils/inst
parenta793b23435567f2d4f49846196ceebcc47cd764c (diff)
parent9fbf8d27ddbfb136351780615d42af82ddb42337 (diff)
downloadmyconfigs-36e9201b0fd130f3aaf924b06bf29c0e46c88743.tar.gz
myconfigs-36e9201b0fd130f3aaf924b06bf29c0e46c88743.tar.bz2
myconfigs-36e9201b0fd130f3aaf924b06bf29c0e46c88743.zip
Merge branch 'master' into server
Diffstat (limited to 'utils/inst')
-rw-r--r--utils/inst30
1 files changed, 17 insertions, 13 deletions
diff --git a/utils/inst b/utils/inst
index b9da163..4d44cdf 100644
--- a/utils/inst
+++ b/utils/inst
@@ -1,6 +1,12 @@
# Functions used for interactive installation of new changes to running system
# vim: ft=sh
+ask() {
+ echo -ne "\e[1;34m$1 (Y/n) \e[0m"
+ read
+ [[ $REPLY =~ ^[Yy]?$ ]]
+}
+
dodiff() {
if [ -d "$2" ]; then
# If we just copying some file to directory
@@ -9,15 +15,14 @@ dodiff() {
OUT=$2
fi
if ! [ -f "$OUT" ]; then
- echo "Not installed: $1 => $OUT"
- read -p "Install? (Y/n) "
- if [[ $REPLY =~ ^[Yy]?$ ]]; then
+ echo -e "\e[1;33mNot installed:\e[0m $1 => $OUT"
+ if ask "Install?"; then
doinst "$1" "$OUT"
fi
return
fi
- if cmp "$1" "$OUT" >/dev/null; then
- echo "No difference detected: $OUT"
+ if cmp "$1" "$OUT" >/dev/null 2>&1; then
+ echo -e "\e[1;32mNo difference detected:\e[0m $OUT"
return
fi
vimdiff "$1" "$OUT"
@@ -31,7 +36,7 @@ checkdiff() {
# directory than it have to have trailing slash to ensure that no
# additional directory is created.
if ! echo "$1" | grep -qE '/$'; then
- echo ERROR: Directory without trailing slash detected: $1
+ echo -e "\e[1;31mERROR: Directory without trailing slash detected:\e[0m $1"
exit 1
fi
# Got trough all files ignoring git repositories
@@ -43,9 +48,8 @@ checkdiff() {
for d in `find "$1" -type d -print -exec test -e '{}'/.git \; -prune`; do
D="${d#$1}"
if [ ! -d "$2/$D" ]; then
- echo "Directory not installed: $1/$D => $2/$D"
- read -p "Install? (Y/n) "
- if [[ $REPLY =~ ^[Yy]?$ ]]; then
+ echo -e "\e[1;33mDirectory not installed:\e[0m $1/$D => $2/$D"
+ if ask "Install?"; then
doinst "$1/$D/" "$2/$D"
fi
fi
@@ -57,9 +61,9 @@ checkdiff() {
cd "$2/$G"
# Check if we have any change at all
if git --work-tree=. diff --exit-code -s; then
- echo "No difference detected in git: $2/$G"
+ echo -e "\e[1;32mNo difference detected in git:\e[0m $2/$G"
else
- echo "Checkout of git repository: $2/$G"
+ echo -e "\e[0;32mCheckout of git repository:\e[0m $2/$G"
# Checkout all files to HEAD
git --work-tree=. checkout -f HEAD
# Update all submodules
@@ -77,14 +81,14 @@ checkdiff() {
# commands not on deployed tree but on tree in this repository, so we need specify
# work tree on command line every time we want target deployed work tree.
doinst() {
- echo rsync -rlpt $1 $2
+ echo -e "\e[1;34mrsync -rlpt $1 $2\e[0m"
rsync -rlpt $1 $2
# Now edit all .git files in target directory
for g in `find "$2" -name '.git' -type f`; do
if ! grep -q "gitdir: " "$g"; then
continue # Probably not a git repository or who knows.
fi
- echo "Pointing git repository $g to this repository"
+ echo -e "\e[1;34mPointing git repository $g to this repository\e[0m"
echo gitdir: $PWD/.git`sed "s/^gitdir: [./]*git//" "$g"` > "$g"
done
}