package App::Netdisco::Util::Python;

use Dancer qw/:syntax :script/;

use Path::Class;
use File::ShareDir 'dist_dir';
use Alien::ultraviolet;

use base 'Exporter';
our @EXPORT = ();
our @EXPORT_OK = qw/py_install py_cmd/;
our %EXPORT_TAGS = (all => \@EXPORT_OK);

sub cipactli {
  my $uv = Alien::ultraviolet->uv;
  my $cipactli = Path::Class::Dir->new( dist_dir('App-Netdisco') )
    ->subdir('python')->subdir('netdisco')->stringify;

  return ($uv, '--no-cache', '--no-progress', '--quiet', '--project', $cipactli);
}

sub py_install {
  return (cipactli(), 'sync');
}

sub py_cmd {
  return (cipactli(), 'run', @_);
}

true;