findOrfail($this->argument('src')); $dst = Address::withTrashed()->findOrfail($this->argument('dst')); if (($src->system_id !== $dst->system_id) && ($src->system->name !== 'Discovered System')) { $this->error(sprintf('FTN addresses are from different systems (%s/%s)',$src->system->name,$dst->system->name)); exit(1); } if (! $this->option('force') && ($src->ftn !== $dst->ftn)) { $this->error(sprintf('FTN addresses are not the same (%s:%s)',$src->ftn,$dst->ftn)); exit(1); } if ($src->active) { $this->error(sprintf('Source [%s] is still active',$src->ftn)); exit(1); } DB::beginTransaction(); // Find all echomail seenbys $x = DB::update('update echomail_seenby set address_id=? where address_id=?',[$dst->id,$src->id]); $this->info(sprintf('Updated [%d] echomail seenby records',$x)); // Find all echomail paths $x = DB::update('update echomail_path set address_id=? where address_id=?',[$dst->id,$src->id]); $this->info(sprintf('Updated [%d] echomail path records',$x)); // Find all echomails $x = DB::update('update echomails set fftn_id=? where fftn_id=?',[$dst->id,$src->id]); $this->info(sprintf('Updated [%d] echomail source records',$x)); // Find all netmails $x = DB::update('update netmails set fftn_id=? where fftn_id=?',[$dst->id,$src->id]); $this->info(sprintf('Updated [%d] netmail source records',$x)); // Find all netmails $x = DB::update('update netmails set tftn_id=? where tftn_id=?',[$dst->id,$src->id]); $this->info(sprintf('Updated [%d] netmail destination records',$x)); // Find all nodelist $x = DB::update('update address_nodelist set address_id=? where address_id=?',[$dst->id,$src->id]); $this->info(sprintf('Updated [%d] nodelist records',$x)); // Find all file seenbys $x = DB::update('update file_seenby set address_id=? where address_id=?',[$dst->id,$src->id]); $this->info(sprintf('Updated [%d] file seenby records',$x)); // Find all files $x = DB::update('update files set fftn_id=? where fftn_id=?',[$dst->id,$src->id]); $this->info(sprintf('Updated [%d] file source records',$x)); if ($this->option('dryrun')) { $this->warn(sprintf('NOT deleting [%s] - DRY RUN',$src->ftn)); DB::rollBack(); } else { if ($src->forceDelete()) { $this->alert(sprintf('%s deleted.', $src->ftn)); DB::commit(); } else { $this->warn(sprintf('Address [%s] didnt delete?',$src->ftn)); DB::rollBack(); } } return Command::SUCCESS; } }