crilose / spericolatoBot

Il bot di Vasco Rossi di cui tutti avevano bisogno
0 stars 0 forks source link

Relative Paths VS Absolute Paths #2

Closed ncvescera closed 8 years ago

ncvescera commented 8 years ago

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:

P.S. Grazie per avermi fatto vedere come creare un bot :smiley:

crilose commented 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.

ncvescera commented 8 years ago

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:

crilose commented 8 years ago

Hai ragione poche volte, ma quando ce l'hai ce l'hai. Nice work mr. Vescera.

crilose commented 8 years ago

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.

ncvescera commented 8 years ago

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:

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

crilose commented 8 years ago

Va bene allora aspetto delucidazioni.

ncvescera commented 8 years ago

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 !

ncvescera commented 8 years ago

@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.