Example #1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $loop = Factory::create();
     $launcher = new Launcher($loop);
     $builder = new Builder($launcher);
     $packager = new Packager();
     $packager->setOutput(function ($line) use($builder) {
         $builder->info(strip_tags($line))->waitReturn();
     });
     $packager->coerceWritable(0);
     foreach (array('gksudo', 'kdesudo', 'cocoasudo', 'sudo') as $bin) {
         if ($this->hasBin($bin)) {
             $packager->setBinSudo($bin);
             break;
         }
     }
     $packager->setOutput($output);
     $menu = $builder->listMenu(array('search' => 'Search package online', 'local' => 'Select local package', 'url' => 'Build from git-Repository', 'about' => 'About clue/phar-composer'), 'Action');
     $menu->setTitle('clue/phar-composer');
     $menu->setWindowIcon('info');
     $menu->setCancelLabel('Quit');
     $selection = $menu->waitReturn();
     if ($selection === 'search') {
         $pharer = $this->doSearch($builder, $packager);
     } elseif ($selection === 'local') {
         do {
             $dir = $builder->directorySelection()->waitReturn();
             if ($dir === false) {
                 return;
             }
             try {
                 $pharer = $packager->getPharer($dir);
                 break;
             } catch (\Exception $e) {
                 $builder->error('Could not initialize composer package:' . PHP_EOL . PHP_EOL . $e->getMessage())->waitReturn();
             }
         } while (true);
     } elseif ($selection === 'url') {
         $pharer = $this->doUrl($builder, $packager);
     } else {
         return;
     }
     if ($pharer === null) {
         return;
     }
     $action = $builder->listMenu(array('build' => 'Build project', 'install' => 'Install project system-wide'), 'Action for "' . $pharer->getPackageRoot()->getName() . '"')->waitReturn();
     if ($action === 'build') {
         $this->doBuild($builder, $packager, $pharer);
     } elseif ($action === 'install') {
         $this->doInstall($builder, $packager, $pharer);
     } else {
         return;
     }
     $builder->info('Successfully built ' . $pharer->getTarget() . '!')->waitReturn();
 }
Example #2
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $packager = new Packager();
     $packager->setOutput($output);
     $packager->coerceWritable();
     $dialog = $this->getHelperSet()->get('dialog');
     /* @var $dialog DialogHelper */
     $name = $input->getArgument('name');
     do {
         if ($name === null) {
             // ask for input
             $name = $dialog->ask($output, 'Enter (partial) project name > ');
         } else {
             $output->writeln('Searching for <info>' . $name . '</info>...');
         }
         $packagist = new Client();
         $choices = array();
         foreach ($packagist->search($name) as $package) {
             /* @var $package Result */
             $label = str_pad($package->getName(), 39) . ' ';
             $label = str_replace($name, '<info>' . $name . '</info>', $label);
             $label .= $package->getDescription();
             $label .= ' (⤓' . $package->getDownloads() . ')';
             $choices[$package->getName()] = $label;
         }
         $name = $this->select($output, 'Select matching package', $choices, 'Start new search');
     } while ($name === null);
     $output->writeln('Selected <info>' . $name . '</info>, listing versions...');
     $package = $packagist->get($name);
     /* @var $package Package */
     $choices = array();
     foreach ($package->getVersions() as $version) {
         /* @var $version Version */
         $label = $version->getVersion();
         $bin = $version->getBin();
         if ($bin === null) {
             $label .= ' (<error>no executable bin</error>)';
         } else {
             $label .= ' (☑ executable bin)';
         }
         $choices[$version->getVersion()] = $label;
     }
     $version = $this->select($output, 'Select available version', $choices);
     $action = $this->select($output, 'Action', array('build' => 'Build project', 'install' => 'Install project system-wide'), 'Quit');
     if ($action === null) {
         return;
     }
     $pharer = $packager->getPharer($name, $version);
     if ($action === 'install') {
         $path = $packager->getSystemBin($pharer);
         $packager->install($pharer, $path);
     } else {
         $pharer->build();
     }
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $packager = new Packager();
     $packager->setOutput(function ($line) use($output) {
         $output->write($line);
     });
     $packager->coerceWritable();
     $pharer = $packager->getPharer($this->path);
     $pharer->setTarget($this->path . '/git-log-version.phar');
     $pharer->setMain($this->path . '/index.php');
     $pharer->build();
     chmod($this->path . '/git-log-version.phar', 0755);
 }
Example #4
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $packager = new Packager();
     $packager->setOutput(function ($line) use($output) {
         $output->write($line);
     });
     $packager->coerceWritable();
     $pharer = $packager->getPharer($input->getArgument('path'));
     $target = $input->getArgument('target');
     if ($target !== null) {
         $pharer->setTarget($target);
     }
     $pharer->build();
 }
Example #5
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $packager = new Packager();
     $packager->setOutput($output);
     $packager->coerceWritable();
     $pharer = $packager->getPharer($input->getArgument('name'));
     $path = $packager->getSystemBin($pharer, $input->getArgument('path'));
     if (is_file($path)) {
         $dialog = $this->getHelperSet()->get('dialog');
         /* @var $dialog DialogHelper */
         if (!$dialog->askConfirmation($output, 'Overwrite existing file <info>' . $path . '</info>? [y] > ')) {
             $output->writeln('Aborting');
             return;
         }
     }
     $packager->install($pharer, $path);
 }