Initial commit.
This commit is contained in:
38
scripts/makesymlinks.bash
Executable file
38
scripts/makesymlinks.bash
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# config directory
|
||||
config_dir="$HOME/config/"
|
||||
|
||||
# backup directory, files that would otherwise be overwritten go there
|
||||
backup_dir="$HOME/oldconfig/"
|
||||
|
||||
# the following folders inside $config_dir will be inspected and symlinked:
|
||||
symlink_folders="bash git i3 vim zsh"
|
||||
|
||||
# backup the old config files
|
||||
backup_dir="$backup_dir/$(date +%Y-%m-%dT%H:%M:%S)"
|
||||
echo "Backing up old configuration files into \"$backup_dir\"."
|
||||
mkdir -p "$backup_dir"
|
||||
for folder in $symlink_folders ; do
|
||||
for file in "$config_dir/$folder"/* ; do
|
||||
oldfile="$HOME/.$(basename "$file")"
|
||||
if [[ -e "$oldfile" ]] ; then
|
||||
destination="$backup_dir/$(basename "$oldfile")"
|
||||
echo "mv: \"$oldfile\" -> \"$destination\""
|
||||
mv "$oldfile" "$destination"
|
||||
else
|
||||
echo "\"$oldfile\" not found, skipped."
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# now symlink the files in $config_dir into the home directory
|
||||
echo "Creating symlinks for configuration files in \"$config_dir\"."
|
||||
for folder in $symlink_folders ; do
|
||||
for file in "$config_dir/$folder"/* ; do
|
||||
destination="$HOME/.$(basename "$file")"
|
||||
echo "ln -s \"$file\" -> \"$destination\""
|
||||
ln -s "$file" "$destination"
|
||||
done
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user