diff --git a/src/std/main.ab b/src/std/main.ab index 48bb2760..234f3fbd 100644 --- a/src/std/main.ab +++ b/src/std/main.ab @@ -128,3 +128,56 @@ pub fun includes(arr, value) { } return false } + +pub fun move(origin: Text, destination: Text): Null { + unsafe $mv "{origin}" "{destination}"$ +} + +pub fun change_dir(path: Text): Null { + if dir_exist(origin) { + unsafe $cd "{path}" || exit$ + } + + return false +} + +pub fun make_symbolic_link(origin: Text, destination: Text): Null { + if file_exist(origin) { + unsafe $ln -s "{origin}" "{path}"$ + return true + } + + echo "The file {$origin} doesn't exist!" + return false +} + +pub fun create_dir(path: Text): Null { + if not dir_exist(origin) { + unsafe $mkdir -p "{path}"$ + } +} + +pub fun make_executable(path: Text): Null { + if file_exist(origin) { + unsafe $chmod +x "{path}"$ + return true + } + + echo "The file {$path} doesn't exist!" + return false +} + +pub fun switch_user_permission(user: Text, path: Text): Null { + // TODO when OR will be available we need to check if the folder or file exist + unsafe $chown -R "{user}" "{path}"$ +} + +pub fun delete(path: Text): Null { + if not includes(['/', '.', '..'], path) { + unsafe $rm -fr "{path}"$ + return true + } + + echo "The file {$path} can't be deleted!" + return false +}