Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
O
oh-my-fish
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
oh-my-fish
Commits
e9962924
Commit
e9962924
authored
Jul 24, 2012
by
Bruno Pinto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Function 'redefine_function' that allows a function to be redefined
parent
82cd7867
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
33 deletions
+41
-33
functions/backup_function.fish
functions/backup_function.fish
+0
-33
functions/redefine_function.fish
functions/redefine_function.fish
+41
-0
No files found.
functions/backup_function.fish
deleted
100644 → 0
View file @
82cd7867
function backup_function
set -l funcname $argv[1]
if functions -q -- $funcname
_create_tmpname
functions -- $funcname | sed -e s/^function\ $funcname/function\ old_$funcname/ > $tmpname
_source_old_function
else
_print_function_not_found $argv
remove_backup_function $argv
return 1
end
end
function _create_tmpname
set -l tmpdir /tmp
set -g tmpname (printf "$tmpdir/fish_funced_%d_%d.fish" %self (random))
while test -f $tmpname
set -g tmpname (printf "$tmpdir/fish_funced_%d_%d.fish" %self (random))
end
end
function _print_function_not_found
set_color red
_ "Function '$argv' not found.
"
set_color normal
end
function _source_old_function
. $tmpname
end
functions/redefine_function.fish
0 → 100644
View file @
e9962924
function redefine_function -d "Redefine a function and backup the old using the prefix 'old_'"
if not set -q argv[1]; _print_error 'Missing function name argument.'; return 1; end
if not set -q argv[2]; _print_error 'Missing original function file argument.'; return 1; end
if not set -q argv[3]; _print_error 'Missing function code argument.'; return 1; end
_backup_old_function $argv
_load_new_function $argv
end
function _backup_old_function
set -l funcname $argv[1]
set -l funcfile $argv[2]
if test -f $funcfile
. $funcfile
functions -c $funcname old_$funcname
else
_print_error "File '$funcfile' not found"
return 1
end
end
function _load_new_function
set -l func $argv[3]
set -q TMPDIR; or set -l TMPDIR /tmp
set -l tmpname (printf "$TMPDIR/fish_funced_%d_%d.fish" %self (random))
while test -f $tmpname
set tmpname (printf "$TMPDIR/fish_funced_%d_%d.fish" %self (random))
end
echo $func > $tmpname
. $tmpname
rm $tmpname >/dev/null
end
function _print_error
set_color red
echo $argv
set_color normal
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment