示例#1
0
def echo():
    sysArr = sys.argv
    sysArr.pop(0)
    seperator = " "
    count = 0
    count2 = 0
    hasFound = 0
    newEnvVarName = []
    newEnvVarValue = []
    for I in command.env_var_name:
        newEnvVarName.append(I.replace("\n", ""))
    for I in command.env_var_value:
        newEnvVarValue.append(I.replace("\n", ""))

    def update():
        for I in sysArr:
            if (I.replace("%", "") in newEnvVarName and I.startswith("%")):
                Index = newEnvVarName.index(I.replace("%", ""))
                SysIndex = sysArr.index(I)
                sysArr[SysIndex] = str(newEnvVarValue[Index])
            else:
                if (I.startswith("%")):
                    Index2 = sysArr.index(I)
                    sysArr[Index2] = "null"

    update()

    print(seperator.join(sysArr))
    command.end(sys.argv)
示例#2
0
def check_if_user_exists():
    for user in users:
        if (sys.argv[1] == user.split("/")[2]):
            print("This user already exists!")
            end(sys.argv)
        else:
            pass
示例#3
0
def check_if_file_exists_and_write():
    if (os.path.isfile(currentDir + sys.argv[1])):
        print("This file already exists!")
        end(sys.argv)
    else:
        open(currentDir + sys.argv[1], "w").close()
        end(sys.argv)
示例#4
0
def create_new_home_directory(name):
    print("Creating home directory `/home/" + name + "' ...")
    try:
        os.mkdir("LostiaFiles/root/home/" + name + "/")
    except FileExistsError:
        print("Home directory already exists!")
        end(sys.argv)
示例#5
0
def read_and_write_from_source():
    sourceData = open(command.CURDIR + source).read()

    with open(command.CURDIR + target, "w") as newFile:
        newFile.write(sourceData)
        newFile.close()
    command.end(sys.argv)
示例#6
0
def cat():
    if (os.path.exists(currentDir + sys.argv[1])):
        catFile = open(currentDir + sys.argv[1]).read()
        print(catFile)
        end(sys.argv)
    else:
        print("Directory does not exist")
        end(sys.argv)
示例#7
0
def validate_permission():
    if (len(sys.argv) == 3):
        if (sys.argv[2] in permissions and sys.argv[2] != "sysadmin"
                and len(sys.argv) == 3):
            return True
        else:
            print(sys.argv[2] + " is not a valid permission.")
            end(sys.argv)
    else:
        return None
示例#8
0
def PlayAnimation(speed, files):
    try:
        Plane = open(files).read()
        PlaneFixed = Plane.split("END")
        os.system("clear")
        for I in PlaneFixed:
            print(I)
            time.sleep(speed)
            os.system("clear")
        print("Animation finished playing.")
        end()

    except:
        print("Failed to run animation")
示例#9
0
def run_command(command):
    canContinue = False
    for I in modules:
        if (command.split(" ")[0] == I.replace("\n", "")):
            canContinue = True

    for I in coreCmd:
        if (command.split(" ")[0] == I.replace("\n", "")):
            canContinue = True

    if (canContinue == False):

        print("ash: command not found: " + command.split(" ")[0])
        end(sys.argv)

    if (command.split(" ")[0] in hidden):

        print("ash: command not found: " + command.split(" ")[0])
        end(sys.argv)
    elif (os.path.isfile("clib/" + command.split(" ")[0] + ".py")):
        pass
    else:

        print("ash: command not found: " + command.split(" ")[0])
        end(sys.argv)
示例#10
0
def deluser():
    for user in keychain:
        foundUser = False
        userName = user.split("/")[2]
        if (sys.argv[1] == userName):
            foundUser = True
        else:
            newKeychain.append(user.replace("\n", ""))
    if (foundUser == True):
        print("Looking for files to backup/remove ...")

        if (len(sys.argv) >= 3 and "--backup-to" in sys.argv):
            index = 0
            for I in sys.argv:
                if (sys.argv[index] == "--backup-to"):
                    break
                index += 1
            if (os.path.isdir(sys.argv[index + 1])):
                print("Backing up files to be removed to " +
                      sys.argv[index + 1] + " ...")
                make_tarfile(sys.argv[index + 1] + sys.argv[1] + ".tar.gz",
                             "LostiaFiles/root/home/" + sys.argv[1])
                print("backup_name = " + sys.argv[index + 1] + sys.argv[1] +
                      ".tar.gz")
            else:
                print("Backup directory does not exist")
                command.end(sys.argv)

        if (command.new_arg_parser("--remove-home")):
            print("Removing files ...")
            shutil.rmtree("LostiaFiles/root/home/" + sys.argv[1] + "/")

        print("Removing user `" + sys.argv[1] + "' ...")
        with open("LostiaFiles/keychain.keychain", "w") as newData:
            newData.writelines(newKeychain)
            newData.close()
        print("Done.")
    else:
        print("User not found")
示例#11
0
def MainCommand():
    if (len(sys.argv) > 1):
        if (os.path.exists("LostiaHelp/" + sys.argv[1] + ".help")):
            for I in Modules:
                if (I.replace("\n", "") == sys.argv[1]):
                    Help = open("LostiaHelp/" + sys.argv[1] +
                                ".help").readlines()
                    for I in Help:
                        print(I.replace("\n", ""))
                    end(sys.argv)
                else:
                    pass
            for I in CoreCommands:
                if (I.replace("\n", "") == sys.argv[1]):
                    Help = open("LostiaHelp/" + sys.argv[1] +
                                ".help").readlines()
                    for I in Help:
                        print(I.replace("\n", ""))
                    end(sys.argv)
                else:
                    pass
            print("No help entry for " + sys.argv[1])
            end(sys.argv)

        else:
            print("No help entry for " + sys.argv[1])
            end(sys.argv)

    else:
        folder = "LostiaHelp/"
        for file in os.listdir(folder):
            if (".help" in file):
                filepath = os.path.join(folder, file)
                f = open(filepath, 'r')
                print(file.replace(".help", "") + " - " + f.read())
                f.close()
            else:
                pass
        end(sys.argv)
示例#12
0
def check_if_user_exists_and_save_new_data():
  
  users = open("LostiaFiles/keychain.keychain")
  loggedInAs = open("LostiaFiles/user.data")
  if(loggedInAs == "guest"):
    print("Permission Denied")
    end(sys.argv)
  newData = users.readlines()
  count = 0
  for user in newData:

    if(sys.argv[1] == user.split("/")[2]):
      password = user.split("/")[3]
      ignorePassword = 0
      if(loggedInAs == "systemadmin"):
        ignorePassword = 1
      if(ignorePassword == 0):
        ask_for_password("passwd",user.split("/")[1],3,password)
      newPassword = getpass("Enter new LOSTIA password: "******"" or newPassword.split(" ")[0] == ""):
        print("New password cannot be empty")
        end(sys.argv)
      else:
        retype = getpass("Retype new LOSTIA password: "******"LostiaFiles/keychain.keychain","w")
          write.writelines(newData)
          write.close()
          print("passwd: password updated successfully")
          end(sys.argv)
        else:
          print("retyped password does not match")
          end(sys.argv)
    else:
      pass
    count+=1
  print("User not found")
示例#13
0
import os
import sys
from command import end, check_for_permission
from datetime import datetime
from getpass import getpass
import shutil

users = open("LostiaFiles/keychain.keychain").readlines()

permissions = ["sysadmin", "user", "admin"]

check_for_permission()
if (len(sys.argv) < 2):
    print("adduser: user, permission [Optional]")
    end(sys.argv)


def check_if_user_exists():
    for user in users:
        if (sys.argv[1] == user.split("/")[2]):
            print("This user already exists!")
            end(sys.argv)
        else:
            pass


def validate_permission():
    if (len(sys.argv) == 3):
        if (sys.argv[2] in permissions and sys.argv[2] != "sysadmin"
                and len(sys.argv) == 3):
            return True
示例#14
0
def check_if_has_arguments():
    if (len(sys.argv) > 1):
        return True
    else:
        print("touch: filename")
        end(sys.argv)
示例#15
0
def check_if_has_arguments():
    if (len(sys.argv) > 1):
        return True
    else:
        print("deluser: user")
        command.end(sys.argv)
示例#16
0
keychain = open("LostiaFiles/keychain.keychain").readlines()


def check_if_has_arguments():
    if (len(sys.argv) > 1):
        return True
    else:
        print("deluser: user")
        command.end(sys.argv)


if (currentUser == "systemadmin"):
    pass
else:
    print("deluser: Only root may remove a user from Ash ")
    command.end(sys.argv)

newKeychain = []

check_if_has_arguments()
if (sys.argv[1] == "systemadmin"):
    print("deluser: Cannot target this user")
    command.end(sys.argv)


def deluser():
    for user in keychain:
        foundUser = False
        userName = user.split("/")[2]
        if (sys.argv[1] == userName):
            foundUser = True
示例#17
0
def check_if_has_arguments():
  if(len(sys.argv)> 1):
    return True
  else:
    print("passwd: user")
    end(sys.argv)
示例#18
0
def has_arguments():
    if (len(sys.argv) > 2):
        pass
    else:
        print("cp: source, target")
        command.end(sys.argv)
示例#19
0
def write_new_data():
    if (sys.argv[1].isupper()):
        print("User name cannot be uppercase, full name can be")
        end(sys.argv)
    print("Adding user " + sys.argv[1] + " ...")
    create_new_home_directory(sys.argv[1])
    copy_files_default_files(sys.argv[1])
    password = getpass("\033[39mEnter new LOSTIA password: "******"/" in password):
        print("/ is not a valid symbol")
        remove_created_home_directory(sys.argv[1])

        end(sys.argv)
    else:
        retype = getpass("\033[39mRetype new LOSTIA password: "******"retyped password does not match")
            remove_created_home_directory(sys.argv[1])
            end(sys.argv)
        else:
            fullName = input("\033[39mFull Name: ")
            if (fullName != "" or fullName.split(" ")[0] != ""):
                if (len(sys.argv) == 2):
                    with open("LostiaFiles/keychain.keychain", "a") as newuser:
                        newuser.write("\n/" + fullName + "/" + sys.argv[1] +
                                      "/" + password + "/user/visable/" +
                                      str(datetime.now()) + "/")
                        newuser.close()
                    print("Added new user")
                    end(sys.argv)
                else:
                    with open("LostiaFiles/keychain.keychain", "a") as newuser:
                        newuser.write("\n/" + fullName + "/" + sys.argv[1] +
                                      "/" + password + "/" + sys.argv[2] +
                                      "/visable/" + str(datetime.now()) + "/")
                        newuser.close()
                    print("Added new user")
                    end(sys.argv)
            else:
                print("Full name cannot be empty")
                remove_created_home_directory(sys.argv[1])
                end(sys.argv)
示例#20
0
def check_if_has_arguments():
    if (len(sys.argv) > 1):
        return True
    else:
        print("cd: .. or directory")
        end(sys.argv)