Skip to content
Snippets Groups Projects
Commit b2549c20 authored by Justin Hileman's avatar Justin Hileman
Browse files

[split] Move bak plugin to oh-my-fish/plugin-bak

https://github.com/oh-my-fish/plugin-bak
parent a90b4814
Branches
No related merge requests found
function __bak_help
echo -e \
"Usage:
$argv[1] SOURCE..."
end
function __bak_parse_help
if [ (count $argv) -lt 3 ]
__bak_help $argv[1]
else
return 1
end
end
function __bak_name
# trim / for directories
set file (echo $argv[1] | sed 's/\/*$//')
echo "$file."(date +'%Y%m%d_%H%M%S')".bak"
end
function __bak
__bak_parse_help $argv
or begin
set program $argv[2]
for file in $argv[3..-1]
eval $program $file (__bak_name $file)
end
end
end
set -g __bak_re '(.*)\.[0-9]{8,8}_[0-9]{6,6}\.bak\/*$'
function __is_bak
set file $argv[1]
echo "$file" | grep -Eq $__bak_re
end
function __bak_normalized
set file $argv[1]
echo "$file" | sed -E "s/$__bak_re/\1/g"
end
function __unbak
__bak_parse_help $argv
or begin
set program $argv[2]
for file in $argv[3..-1]
set normalized (__bak_normalized $file)
if test ! -e $file
echo "File \"$file\" not exists! Cannot unbak \"$file\"."
else if not __is_bak $file
echo "File \"$file\" don't meet bak files convention! Cannot unbak \"$file\"."
else if test -e $normalized
echo "File \"$normalized\" exists! Cannot unbak \"$file\"."
else
eval $program $file $normalized
end
end
end
end
# Function to copy files and directories (a.txt copy to a.txt.20140608_195859.bak)
# (c) Roman Inflianskas (rominf) <infroma@gmail.com>, 2014
function cpbak --description 'Copy files to make a backup copies'
__bak cpbak 'cp -a' $argv
end
# Function to rename files and directories (a.txt rename to a.txt.20140608_195859.bak)
# (c) Roman Inflianskas (rominf) <infroma@gmail.com>, 2014
function mvbak --description 'Rename files to make a backup copies'
__bak mvbak mv $argv
end
# Function to copy files and directories (a.txt.20140608_195859.bak copy to a.txt)
# (c) Roman Inflianskas (rominf) <infroma@gmail.com>, 2014
function uncpbak --description 'Copy files to revert a backup copies to a normal files'
__unbak uncpbak 'cp -a' $argv
end
# Function to move files and directories (a.txt.20140608_195859.bak move to a.txt)
# (c) Roman Inflianskas (rominf) <infroma@gmail.com>, 2014
function unmvbak --description 'Move files to revert a backup copies to a normal files'
__unbak unmvbak mv $argv
end
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment