diff --git a/scripts/backup-buttons.rsc b/scripts/backup-buttons.rsc new file mode 100644 index 0000000..e39caf1 --- /dev/null +++ b/scripts/backup-buttons.rsc @@ -0,0 +1,39 @@ +# Backup button configurations - reset button, mode button. + +# filename: backup-button-config +# policy: ftp, read, write, policy, test + +:global adminEmail +:if ([:typeof $adminEmail] = "nothing" || $adminEmail = "") do={ + :log error "adminEmail is not defined or nil."; :error "Error: Check the log"; } + +:local backupName "buttons" + +:local fileName "$backupName.rsc" +:local emailStatus + +:log info "\nCreating a $backupName backup..." + +# remove existing file, if exists for unknown reason +/file remove [find name=$fileName]; :delay 1s + +# export relevant info +/system routerboard + export file=$fileName +:delay 3s + +/tool e-mail + +:do { send to="$adminEmail" subject="Backup of $backupName" \ + body="See the subject and the attachment." file=$fileName + } on-error={ :log error "Error sending email." } + +:do { :delay 5s; :set emailStatus [get last-status] } while=( $emailStatus = "in-progress" ) + +:if ( $emailStatus = "failed" ) do={ + :log error "Backup failed!" +} else={ + :log info "Backup is taken and is sent to $adminEmail." +} + +/file remove $fileName diff --git a/test-snippets/README.md b/test-snippets/README.md new file mode 100644 index 0000000..65da948 --- /dev/null +++ b/test-snippets/README.md @@ -0,0 +1,3 @@ +# Test Snippets + +These are not full-fledged scripts. Just snippets to test a single unit of action such as detecting internet or detecting DNS. I hope someone finds it useful! diff --git a/test-snippets/test-detect-internet.rsc b/test-snippets/test-detect-internet.rsc new file mode 100644 index 0000000..bebd3bc --- /dev/null +++ b/test-snippets/test-detect-internet.rsc @@ -0,0 +1,13 @@ +# requirement: /interface detect-internet set detect-interface-list=WAN + +/interface detect-internet + # set detect-interface-list=WAN + state + +:do { + :log info "Waiting for internet..." + :set $internetStatus ([:pick [print as-value] 0]->"state") + :delay 3s +} while ($internetStatus != "internet") + +:log info "Connected to internet." diff --git a/test-snippets/test-empty-env-var b/test-snippets/test-empty-env-var new file mode 100644 index 0000000..d3d668c --- /dev/null +++ b/test-snippets/test-empty-env-var @@ -0,0 +1,7 @@ +:global adminEmail + +:if ([:typeof $adminEmail] = "nothing" || $adminEmail = "") do={ :log error "Admin Email is not defined or nil."; :error "Admin Email is not defined or nil."; } else={ :put "We are good to proceed!" } + +# :if ($adminEmail = "") do={ :log error "Admin Email is nil."; :error "Admin Email is nil."; } + +:put "This should not be visible if admin email is not defined or nil!" diff --git a/test-snippets/test-generate-password b/test-snippets/test-generate-password new file mode 100644 index 0000000..bf6019d --- /dev/null +++ b/test-snippets/test-generate-password @@ -0,0 +1,5 @@ +:global myPassword; + +:set myPassword [:pick ([/cert scep-server otp generate as-value minutes-valid=1]->"password") 0 20] +:put "Your new password is..." +:put $myPassword diff --git a/test-snippets/test-log b/test-snippets/test-log new file mode 100644 index 0000000..744eccd --- /dev/null +++ b/test-snippets/test-log @@ -0,0 +1,12 @@ +# Email the generic-log when it reaches the threshold! + +:global adminEmail +:local emailStatus +:local logFile "genericLog.1.txt" +:local fileContent "temp" + +:do { + if ( [/file get "flash/$logFile" ] != "no such item" ) do={ :log info "Log file found!" } +} on-error={ :log warning "Log file isn't big enough!" } + +:put $fileContent