User:Xenon dichloride/Terminal

From Infinite Nomic Wiki

Terminal is a nomic taking place entirely within a filesystem.

The following represents the initial state of the file system:

~/
    commands/  # owner: su
    rules/
    players/  # owner: 
Command Alternative Syntax Description
mk make mk {location or if blank: ~/} {name} {dir/file or if blank: file} {owner or if blank: you, if e or all: all players} {if file: contents as attached .txt file or code block} Creates a file or directory at the specified location.
cp copy cp {location} {location} Copies a file or directory from one location and places the copy in another location.
mv move mv {location} {location} Moves a file or directory to a new location.
rm remove rm {location} Deletes a file or directory. A directory with contents not owned by the user cannot be deleted without sudo.
rn rename rn {location} {new name} Changes the name of a file or directory.
ls list ls {location} Lists the files in a directory or contents of a file.
et edit et {file location} {write/append or w/a} {new contents attached as .txt file or code block} Changes the contents of a file.
run run {file name} Executes the code in a file.
exit exit Terminates any processes ran by you.

You cannot perform a command on a file or in a directory that you are not the owner of, unless you use sudo.

Players

A player must be a member of the IN discord server.

When a player joins, the following file is created at ~/players/ named {player name}:

id = {Discord ID}
is_player = true
inventory = []

If that file already exists (the player has the same id), is_player = true. If multiple players would have files of the same name, subsequent player files have an integer appended to their name to represent their place when joining. When a player ceases being a player, is_player = false. If a player or ex-player leaves the server, they are no longer a player and their file is removed.

Winning

The first player to become a 'superuser' ('su') wins the cycle.