mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-25 02:32:55 +02:00
made alias names posix compilant and added global aliases
This commit is contained in:
+44
-6
@@ -1,5 +1,6 @@
|
||||
/* Alias.js */
|
||||
Aliases = {};
|
||||
GlobalAliases = {};
|
||||
|
||||
//Print all aliases to terminal
|
||||
function printAliases() {
|
||||
@@ -8,21 +9,40 @@ function printAliases() {
|
||||
post("alias " + name + "=" + Aliases[name]);
|
||||
}
|
||||
}
|
||||
for (var name in GlobalAliases) {
|
||||
if (GlobalAliases.hasOwnProperty(name)) {
|
||||
post("global alias " + name + "=" + GlobalAliases[name]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//True if successful, false otherwise
|
||||
function parseAliasDeclaration(dec) {
|
||||
var re = /([^=]+)="(.+)"/;
|
||||
function parseAliasDeclaration(dec,global=false) {
|
||||
var re = /^([_|\w|!|%|,|@]+)="(.+)"$/;
|
||||
var matches = dec.match(re);
|
||||
if (matches == null || matches.length != 3) {return false;}
|
||||
addAlias(matches[1], matches[2]);
|
||||
if (global){
|
||||
addGlobalAlias(matches[1],matches[2]);
|
||||
} else {
|
||||
addAlias(matches[1], matches[2]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function addAlias(name, value) {
|
||||
if (name in GlobalAliases){
|
||||
delete GlobalAliases[name];
|
||||
}
|
||||
Aliases[name] = value;
|
||||
}
|
||||
|
||||
function addGlobalAlias(name, value) {
|
||||
if (name in Aliases){
|
||||
delete Aliases[name];
|
||||
}
|
||||
GlobalAliases[name] = value;
|
||||
}
|
||||
|
||||
function getAlias(name) {
|
||||
if (Aliases.hasOwnProperty(name)) {
|
||||
return Aliases[name];
|
||||
@@ -30,6 +50,13 @@ function getAlias(name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
function getGlobalAlias(name) {
|
||||
if (GlobalAliases.hasOwnProperty(name)) {
|
||||
return GlobalAliases[name];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function removeAlias(name) {
|
||||
if (Aliases.hasOwnProperty(name)) {
|
||||
delete Aliases[name];
|
||||
@@ -42,10 +69,21 @@ function removeAlias(name) {
|
||||
//Aliases only applied to "whole words", one level deep
|
||||
function substituteAliases(origCommand) {
|
||||
var commandArray = origCommand.split(" ");
|
||||
for (var i = 0; i < commandArray.length; ++i) {
|
||||
var alias = getAlias(commandArray[i]);
|
||||
if (commandArray.length>0){
|
||||
var alias = getAlias(commandArray[0]);
|
||||
if (alias != null) {
|
||||
commandArray[i] = alias;
|
||||
commandArray[0] = alias;
|
||||
} else {
|
||||
var alias = getGlobalAlias(commandArray[0]);
|
||||
if (alias != null) {
|
||||
commandArray[0] = alias;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < commandArray.length; ++i) {
|
||||
var alias = getGlobalAlias(commandArray[i]);
|
||||
if (alias != null) {
|
||||
commandArray[i] = alias;
|
||||
}
|
||||
}
|
||||
}
|
||||
return commandArray.join(" ");
|
||||
|
||||
Reference in New Issue
Block a user