Add path support in config.mash
This commit is contained in:
		
							
								
								
									
										41
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								main.py
									
									
									
									
									
								
							@@ -13,16 +13,14 @@ from os.path import expanduser
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Some initial variables
 | 
					# Some initial variables
 | 
				
			||||||
version = "0.1.0"
 | 
					version = "0.2.0"
 | 
				
			||||||
user = os.getlogin()
 | 
					user = os.getlogin()
 | 
				
			||||||
initDirectory = expanduser("~") 
 | 
					initDirectory = expanduser("~") 
 | 
				
			||||||
currentDirectory = initDirectory
 | 
					 | 
				
			||||||
argList = ["", ""]
 | 
					argList = ["", ""]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Start work on checking whether a config file exists
 | 
					# Start work on checking whether a config file exists
 | 
				
			||||||
if os.path.isfile(expanduser("~") + "/.config/mash/mash.conf") == False:
 | 
					if os.path.isfile(expanduser("~") + "/.config/mash/mash.conf") == False:
 | 
				
			||||||
    print("Config file does not exist. Copying default file to ~/.config/mash/mash.conf")
 | 
					    print("Config file does not exist. Make a file at .config/mash/mash.conf to configure things")
 | 
				
			||||||
    shutil.copyfile("/etc/mash/mash.conf", (expanduser("~") + "/.config/mash/mash.conf"))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Parse config file, adding variables
 | 
					# Parse config file, adding variables
 | 
				
			||||||
configFileFile = open((expanduser("~") + "/.config/mash/mash.conf"))
 | 
					configFileFile = open((expanduser("~") + "/.config/mash/mash.conf"))
 | 
				
			||||||
@@ -50,7 +48,19 @@ for word in confArgList:
 | 
				
			|||||||
for word in confArgList:
 | 
					for word in confArgList:
 | 
				
			||||||
    if word == "motd:":
 | 
					    if word == "motd:":
 | 
				
			||||||
        motd = confArgList[confArgList.index(word) + 1]
 | 
					        motd = confArgList[confArgList.index(word) + 1]
 | 
				
			||||||
 | 
					    if word == ",mashPath:":
 | 
				
			||||||
 | 
					        mashPathStr = (confArgList[confArgList.index(word) + 1])
 | 
				
			||||||
 | 
					        pathStrIndex = 0
 | 
				
			||||||
 | 
					        mashPath = [""]
 | 
				
			||||||
 | 
					        for letter in mashPathStr:
 | 
				
			||||||
 | 
					            if letter == ";":
 | 
				
			||||||
 | 
					                pathStrIndex = pathStrIndex + 1
 | 
				
			||||||
 | 
					                mashPath.append("")
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                try:
 | 
				
			||||||
 | 
					                    mashPath[pathStrIndex] = mashPath[pathStrIndex] + letter
 | 
				
			||||||
 | 
					                except Exception:
 | 
				
			||||||
 | 
					                    mashPath.append(letter)
 | 
				
			||||||
# Write the time to the history file
 | 
					# Write the time to the history file
 | 
				
			||||||
historyFile = open((expanduser("~") + "/.history.mash"), "a")
 | 
					historyFile = open((expanduser("~") + "/.history.mash"), "a")
 | 
				
			||||||
historyFile.write("\n")
 | 
					historyFile.write("\n")
 | 
				
			||||||
@@ -59,9 +69,13 @@ historyFile.write("\n")
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Welcome message. Configurable with "motd: (your motd here),"
 | 
					# Welcome message. Configurable with "motd: (your motd here),"
 | 
				
			||||||
print(motd)
 | 
					print(motd)
 | 
				
			||||||
 | 
					os.chdir(initDirectory)
 | 
				
			||||||
 | 
					currentDirectory = initDirectory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Main loop.
 | 
					# Main loop.
 | 
				
			||||||
try:
 | 
					def mainLoop(startDir):
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        currentDirectory = startDir
 | 
				
			||||||
        while True:
 | 
					        while True:
 | 
				
			||||||
            # Set directory and prompt for input.
 | 
					            # Set directory and prompt for input.
 | 
				
			||||||
            os.chdir(currentDirectory)
 | 
					            os.chdir(currentDirectory)
 | 
				
			||||||
@@ -142,6 +156,9 @@ try:
 | 
				
			|||||||
                print(configFile)
 | 
					                print(configFile)
 | 
				
			||||||
            # If a built in command isn't what you wanted, run a new subprocess.
 | 
					            # If a built in command isn't what you wanted, run a new subprocess.
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
 | 
					                for word in mashPath:
 | 
				
			||||||
 | 
					                    if os.path.isfile(word + "/" + argList[0]):
 | 
				
			||||||
 | 
					                        argList[0] = (word + "/" + argList[0])
 | 
				
			||||||
                try:
 | 
					                try:
 | 
				
			||||||
                    subprocess.run(argList)
 | 
					                    subprocess.run(argList)
 | 
				
			||||||
                except Exception:
 | 
					                except Exception:
 | 
				
			||||||
@@ -153,9 +170,11 @@ try:
 | 
				
			|||||||
            historyFile.write("\n")
 | 
					            historyFile.write("\n")
 | 
				
			||||||
            historyFile.close()
 | 
					            historyFile.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Handle errors in the main loop
 | 
					    # Handle errors in the main loop
 | 
				
			||||||
except Exception:
 | 
					    #except Exception:
 | 
				
			||||||
    print("Looks like there was an error. Exiting...")
 | 
					        #print("Looks like there was an error. Exiting...")
 | 
				
			||||||
# Handle ^C
 | 
					# Handle ^C
 | 
				
			||||||
except KeyboardInterrupt:
 | 
					    except KeyboardInterrupt:
 | 
				
			||||||
    print(" detected! Exiting...")
 | 
					        print("\n")
 | 
				
			||||||
 | 
					        mainLoop(currentDirectory)
 | 
				
			||||||
 | 
					mainLoop(initDirectory)
 | 
				
			||||||
		Reference in New Issue
	
	Block a user