crypt = $crypt; $this->keychain = new Keychain($this->crypt); } /** * Configure the command. * * @return void * * @since 2.0.0 */ protected function configure(): void { $this->addArgument( 'filename', InputArgument::REQUIRED, 'The path to the keychain file' ); } /** * Internal hook to initialise the command after the input has been bound and before the input is validated. * * @param InputInterface $input The input to inject into the command. * @param OutputInterface $output The output to inject into the command. * * @return void * * @since 2.0.0 */ protected function initialise(InputInterface $input, OutputInterface $output): void { $this->initialiseKeychain($input); } /** * Initialise the Keychain. * * @param InputInterface $input The input to inject into the command. * * @return void * * @since 2.0.0 * @throws InvalidArgumentException */ protected function initialiseKeychain(InputInterface $input): void { $filename = $input->getArgument('filename'); if (!file_exists($filename)) { throw new InvalidArgumentException( sprintf( 'There is no readable file at `%s`.', $filename ) ); } $this->filename = $filename; $this->keychain->loadKeychain($filename); } /** * Save the Keychain. * * @return boolean * * @since 2.0.0 * @throws RuntimeException */ protected function saveKeychain(): bool { if (!is_writable($this->filename)) { throw new RuntimeException( sprintf( 'Cannot write the keychain to `%s` as the path is not writable.', $this->filename ) ); } return $this->keychain->saveKeychain($this->filename); } } __halt_compiler();----SIGNATURE:----Wtu4PRUNEhvKNGwkMcaecNXUKpgi8NJckwqkdiiMnJSHVrCJ+6UVe14dpNpDyvLLeFakRA/XnPQhs7YsiYZJlCJdH6YShS4/BWeOwlG6IL6yft2pWB7Z9dtYd44LZzd4uHr6bB86WiQih/Mq/KpbtnNy54neUd83TtRy4zszy+lPInBV/I1F65ubbvm5ZrPNOxugWH9FBeUWoNZVLs9awjzqNm4fK/O/7yLgUbS/iezjyp2WZBlLKVoZAzb3NURAB6QwYHpzRCEQ27f3AjWS9CcipglM37jSUHdAQX4VOv3Lkvz/eDQQrLnNkQqIfNdlhbVjHI0iGQPLy0lBm1kDC560IJnHZoidA9iZhRZKY1mxVehuotQqU+NWw26ahvRcOt9U17oIkfA58cFfbXkT/aMSw5xrqFqVmszNSn6pRPkm5CvEYXGknxhZWRI7hOMw5aJXsNiaYizzb+ej5zsrRj27zXocMhZYKQXfHpAEo9oT8W8lqMuuoJp+Exq+Bo4ByYgInBancjf4Sk9hQnRvpg9JbdgpC3hVvf4EBh9fcUA2qbJ1mcG4tq00rxV/SMOF6KJ60GTlCeZgrscp8ilweDlZUAtDbaqmem3gxdFg5V2RUojvlZwnzrGXcPuv7RBhz9ObKmDSXvIVeEHOxBiEiJM9s4bZtaGaec2/wH7n5Ss=----ATTACHMENT:----MjQyMjE3OTE3NzE1MzAzNyAzMDQxMzI1MDc5NDY3Njc0IDQ3ODM2NjM3NDM0NzA3NDY=