mirror of
https://github.com/cmderdev/cmder.git
synced 2024-11-10 09:49:12 +08:00
Rework alias command to handle duplicates
* Removed unnecessary perl script
This commit is contained in:
parent
11753fdd2a
commit
e224d133f3
@ -1,4 +1,7 @@
|
||||
@echo off
|
||||
|
||||
set ALIASES="%CMDER_ROOT%\config\aliases"
|
||||
|
||||
if ["%1"] == ["/?"] goto:p_help
|
||||
if ["%1"] == ["/reload"] goto:p_reload
|
||||
if ["%2"] == [""] echo Insufficient parameters. & goto:p_help
|
||||
@ -14,15 +17,15 @@ if not ["%_temp%"] == ["%_temp2%"] (
|
||||
goto:eof
|
||||
)
|
||||
|
||||
echo %* >> "%CMDER_ROOT%\config\aliases"
|
||||
doskey /macrofile="%CMDER_ROOT%\config\aliases"
|
||||
perl "%CMDER_ROOT%\scripts\clean_aliases.pl"
|
||||
echo Alias created
|
||||
:: replace already defined alias
|
||||
findstr /b /v /i "%_temp%=" %ALIASES% >> %ALIASES%.tmp
|
||||
echo %* >> %ALIASES%.tmp && type %ALIASES%.tmp > %ALIASES% & @del /f /q %ALIASES%.tmp
|
||||
doskey /macrofile=%ALIASES%
|
||||
endlocal
|
||||
goto:eof
|
||||
|
||||
:p_reload
|
||||
doskey /macrofile="%CMDER_ROOT%\config\aliases"
|
||||
doskey /macrofile=%ALIASES%
|
||||
echo Aliases reloaded
|
||||
goto:eof
|
||||
|
||||
|
@ -1,36 +0,0 @@
|
||||
# Cmder adds aliases to its aliases file without caring for duplicates.
|
||||
# This can result in the aliases file becoming bloated. This script cleans
|
||||
#the aliases file.
|
||||
use Env;
|
||||
|
||||
my %aliases;
|
||||
my $alias_file = $CMDER_ROOT . "/config/aliases";
|
||||
|
||||
# First step
|
||||
# Read the aliases file line by line, and put every entry in
|
||||
# a dictionary. The newer aliases being the last, the new will
|
||||
# always be kept over the old.
|
||||
open (my $file_handle, '<', $alias_file) or die "cannot open '$alias_file' $!";
|
||||
while(my $line = <$file_handle>)
|
||||
{
|
||||
if ($line =~ /([^=\s<>]+)=(.*)/)
|
||||
{
|
||||
$aliases{ $1 } = $2;
|
||||
}
|
||||
else
|
||||
{
|
||||
print "Invalid alias: $line"
|
||||
}
|
||||
}
|
||||
close($file_handle);
|
||||
|
||||
|
||||
# Second step
|
||||
# Write back the aliases. Sort them to make the file look nice.
|
||||
open(my $file_handle, '>', $alias_file) or die "cannot open '$alias_file' $!";
|
||||
foreach my $key (sort keys %aliases)
|
||||
{
|
||||
print $file_handle "$key=$aliases{ $key }\n";
|
||||
}
|
||||
close($file_handle);
|
||||
|
Loading…
Reference in New Issue
Block a user