aboutsummaryrefslogtreecommitdiffstats
path: root/.lush/scripts/example.lua
diff options
context:
space:
mode:
authorGravatar Lance Borden 2025-08-19 15:09:00 -0400
committerGravatar Lance Borden 2025-08-19 15:09:00 -0400
commit6ef7c83e19eae145e40f5d8cc9da82484546052a (patch)
tree77540bbe027c13a620128cb358cfb411ed956fa6 /.lush/scripts/example.lua
parentv0.4.0 (diff)
update install script paths
Diffstat (limited to '.lush/scripts/example.lua')
-rw-r--r--.lush/scripts/example.lua112
1 files changed, 0 insertions, 112 deletions
diff --git a/.lush/scripts/example.lua b/.lush/scripts/example.lua
deleted file mode 100644
index e7cd210..0000000
--- a/.lush/scripts/example.lua
+++ /dev/null
@@ -1,112 +0,0 @@
---[[
-Copyright (c) 2024, Lance Borden
-All rights reserved.
-
-This software is licensed under the BSD 3-Clause License.
-You may obtain a copy of the license at:
-https://opensource.org/licenses/BSD-3-Clause
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted under the conditions stated in the BSD 3-Clause
-License.
-
-THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-]]
-
--- This file is a demo of all of the commands Lunar Shell has in its Lua API
--- the Lua file itself is the executable unit so all code is run line by line
-
--- All Lua specific tools still work here too. Functions, loops, conditionals,
--- tables, Lua's standard library, etc are all available to integrate with Lunar Shell
-
-print("Welcome to Lunar Shell scripting")
-
--- command line args can be passed to lua programs
--- done like so: example.lua arg1 arg2 ...
--- args can be read using the global args tables
-if args ~= nil then
- print("Printing args:")
- for i = 1, #args do
- print(args[i])
- end
-end
-
--- exec can be used to run any command line prompt
--- this method is much more native than using os.execute and is the recommended function
--- it also returns a boolean on if the command executed successfully
-if lush.exec('echo "hello world"\n') then
- print("echo worked properly")
-end
-
--- debug mode can be used to log execution of commands
-lush.debug(true) -- enters debug
-lush.exec('echo "echo in debug mode"')
-lush.debug(false) -- exits debug
-
--- getcwd returns the current working directory
-local cwd = lush.getcwd()
-print(cwd)
-
--- exec also supports piping
--- this comment will get grepped since it says hello
-lush.cd("~/.lush/scripts")
-lush.exec('cat "example.lua" | grep "hello" | sort | uniq')
-lush.cd(cwd)
-
--- exists allows you to check if a file or directory exists
-if lush.exists("~/.lush/scripts/example.lua") then
- print("example.lua exists")
-end
-
--- isFile and isDir check if a path points to a file or a directory
-if lush.isFile("~/.lush/scripts/example.lua") then
- print("example.lua is a file")
-end
-
-if not lush.isDirectory("~/.lush/scripts/example.lua") then
- print("example.lua is not a directory")
-end
-
--- you can also check if a file is readable/writeable
-if lush.isReadable("~/.lush/scripts/example.lua") then
- print("example.lua is readable")
-end
-if lush.isWriteable("~/.lush/scripts/example.lua") then
- print("example.lua is writeable")
-end
-
--- you can fetch the most recently executed command in history
-print("Most recent history: " .. lush.lastHistory())
-
--- you can also fetch history at a certain index in the past (1 being most recent)
-print("Most recent history indexed: " .. lush.getHistory(1))
-
--- you can set environment variables using putenv
-lush.setenv("EXAMPLE", "Lunar Shell Example")
-
--- you can get an environment variable using getenv
-print("Value of EXAMPLE: " .. lush.getenv("EXAMPLE"))
-
--- you can unset an environment variable with unsetenv
-lush.unsetenv("EXAMPLE")
-
--- you can get the current terminal width(cols) and height(rows)
--- this function is very useful if you want to make certain kinds of custom prompts in your init.lua
-print("Terminal Columns: " .. lush.termCols())
-print("Terminal Rows: " .. lush.termRows())
-
--- the glob function scans the current working directory for files with the given extension and returns
--- them as an array of strings
-local textFiles = lush.glob("txt")
-if textFiles ~= nil then
- print("Printing txt files:")
- for i = 1, #textFiles do
- print(textFiles[i])
- end
-end
-
--- the exit function is used to make the program quit in the case of an error
-print("making an error with lush.exit()")
-lush.exit()