Closed ncvescera closed 8 years ago
Ho capito, vuoi definitivamente convincermi a usare solo il progetto su Git invece che a fare modifiche su quello locale per poi copiare il file aggiornato sulla cartella di Git. E mi hai convinto.
Non appena avrò sottomano un terminale effettuerò la modifica, come da te consigliato, utilizzando il magico Atom editor, sempre da te consigliato.
Vasco Rossi ringrazia.
Perfetto ! Ne sono felice, però lo scopo di questa issue non era convincerti ma dirti che sarebbe meglio utilizzare i path relativi invece di quelli assoluti perchè se sposti la cartella si sminchia tutto :smile: Inoltre togli il token dal file che non è cosa buona nè giusta far vedere a tutti i propri dati :wink:
Hai ragione poche volte, ma quando ce l'hai ce l'hai. Nice work mr. Vescera.
Non so se è un problema mio, ma cambiando i percorsi da assoluti a relativi e avviando il bot da startvasco.rb al primo messaggio vocale che gli capita si blocca. Ergo necessito sapere se è un problema mio.
Ok, vediamo cosa si può fare... Hai provato a far partire VascoBot.rb e vedere se da lo stesso problema ??
Credo che l'inghippo sia nel fatto che è un altro script che manda in esecuzione VascoBot.rb e quindi potrebbe non essere nella stessa cartella. Ti faccio un esempio: avevo il seguente albero di directory progetto | +------start.py |
---|
+-------cartella | +---------script.py | +---------cartella | +---------------file
start.py mandava in esecuzione script.py il quale accedeva al file file nella cartella cartella. Il problema era che dato che start.py richiamava script.py come se fosse nella stessa cartella ( non so per quale motivo ) e quindi i path relativi non funzionavano più !
Il tuo potrebbe essere un problema simile, dato che non sai proprio bene come funziona la funzione Daemon che utilizzi per far diventare VascoBot.rb un demone.
QUINDI:
nomeprogett/eeh/file
( è un po brutto ma come toppa temporanea ci sta )./eeh/file
( è meno brutto di quello sopra ma molto probabilmente non cambia niente )Se il tutto non funziona lascia i path assoluti anche se fa un po cacca :disappointed:
Ogni volta che esegui una di queste prove spunta la casellina e rispondimi con il risultato :grinning:
HO CAPITO IL PERCHE' NON FUNZIONA !!! Quando fai partire un demone viene eseguito nella / ( la cartella root ) e quindi i path relativi si sminchiano tutto !
Sto cercando come risolverlo
Va bene allora aspetto delucidazioni.
Credo di aver trovato una soluzione carina ed accettabile ! La soluzione è la seguente :
avremo sempre lo startBot
e il bot
, lo startBot
si occuperà di prendere il percorso assoluto della cartella in cui sta e passarlo al bot
:
Deamn.run('bot.rb #{current_dir}')
Dovrebbe funzionare !
@crilose RISOLTO
Ho risolto il problema del demone nel seguente modo:
#startDiego.rb
current_dir = Dir.pwd
#comando per gestire il demone
cmd = ARGV[0]
#oggetto che contiene gli argomenti da passare allo script demone
options = {
:ARGV => ["#{cmd}", '-f', '--', "#{current_dir}/"],
}
#demonizzazione dello scirpt
Daemons.run("diego.rb", options)
#diego.rb
absolute_path = ARGV[0]
#token di accesso per telegram
config_file = absolute_path+'settings/token.rb'
Prendendo il path assoluto della cartella e passandolo al demone, così può sempre sapere dove si trovano i file senza usare i path assoluti 😄
options
è un oggetto che contiene un array dove al primo posto c'è il comando passato allo script startDiego.rb così facendo è possibile gestire il demone e l'ultimo è l'argomento che va passato al demone.
Nel file
spericolatoBot/VascoRossi.rb
ti conviene di utilizzare i path relativi invece di quelli assoluti in quanto i file a cui ti riferisci stanno in una cartella presente nel progetto git ! Esempio:/home/cristiano/VascoBot/eehhh/file.mp3
eehh/file.mp3
P.S. Grazie per avermi fatto vedere come creare un bot :smiley: