Also, I want to be able to add/remove options when needed, but the rotation should stay intact.
Isso é complicado. O que significa a rotação permanecer intacta após a modificação da lista de opções? Afinal, você poderia estar reconstruindo completamente a lista, destruindo qualquer pista sobre onde você estava.
O que você provavelmente poderia fazer é configurar um diretório com arquivos que representem suas opções (por meio do nome do arquivo ou do conteúdo deles). Então, sempre que a tarefa do cron for executada, você listaria esse diretório, classificando os arquivos pela hora da última modificação. Você pega a entrada mais antiga, touch
desse arquivo para alterar sua hora de modificação para a hora atual e, em seguida, usa-a para executar o script.
#!/bin/bash
cd ~/script-options
next=$(ls -rt | head -n1)
touch -- "${next}"
node ~/script.js ${next} or $(<"${next}")
Se você quiser, você pode escrever isso em uma única linha para o cron, mas ficará mais difícil de ler.
Adicionar opções significa adicionar novos arquivos ao diretório de opções. Remover opções significa excluir arquivos. A qualquer momento, o arquivo mais antigo é o que será executado em seguida, portanto, novas opções serão adicionadas no final do ciclo, como se o tivesse acabado de ser executado. Se você quiser reordenar as opções, pode tocá-las na ordem que desejar.