update flake

This commit is contained in:
Denis Lehmann 2021-04-17 09:20:31 +02:00
parent 2955c2cfe1
commit 3011036748
3 changed files with 86 additions and 35 deletions

View file

@ -26,12 +26,26 @@ If you have a recent *Nix* version and *flakes* are enabled, you can execute the
#+end_example #+end_example
If you are not running the [[https://nixos.org/][Nix]] package manager, you should definitely try it out. If you are not running the [[https://nixos.org/][Nix]] package manager, you should definitely try it out.
Anyway, this is just a shell script so clone the repo, make sure the dependencies listed below are fulfilled and there you go. Anyway, this is just a shell script so clone the repo, make sure the dependencies listed below are fulfilled and there you go.
#+begin_example sh #+begin_example sh
./tyt --help ./tyt --help
#+end_example #+end_example
** Dependencies
If you are running tyt as *Nix flake* you don't have to care about dependencies.
A mpv version with scripts is used by default, this enables *MPRIS support* while playback and *skipping sponsored seqments* of videos.
These are the dependencies of the script:
- [[https://stedolan.github.io/jq/][jq]]
- [[https://mpv.io/][mpv]]
- [[https://ytdl-org.github.io/youtube-dl/][youtube-dl]]
If you are not running Nix, make sure those are available on your system and hope that everything works.
** Usage ** Usage
#+begin_example text #+begin_example text
@ -60,14 +74,6 @@ Anyway, this is just a shell script so clone the repo, make sure the dependencie
** Script ** Script
*** Dependencies *** Dependencies
The dependencies of the script are:
- [[https://stedolan.github.io/jq/][jq]]
- [[https://mpv.io/][mpv]]
- [[https://ytdl-org.github.io/youtube-dl/][youtube-dl]]
Please make sure those are available on your system.
On the start of the script, it is checked if the dependencies are fulfilled. On the start of the script, it is checked if the dependencies are fulfilled.
#+begin_src bash #+begin_src bash

22
flake.lock generated
View file

@ -1,12 +1,27 @@
{ {
"nodes": { "nodes": {
"flake-utils": {
"locked": {
"lastModified": 1618217525,
"narHash": "sha256-WGrhVczjXTiswQaoxQ+0PTfbLNeOQM6M36zvLn78AYg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c6169a2772643c4a93a0b5ac1c61e296cba68544",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1618467905, "lastModified": 1618640098,
"narHash": "sha256-T5J91HMTXLcRK7PgN/a7gU9Mv0skkrdyF2q4PSyqUzk=", "narHash": "sha256-RPdJQX2/VcLMb04TNZtyCgHyTOjwcaM3UjBziNwGz1g=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "7bf3b1fe952dcc59a8d3e9c5f6c99d6401ee49c7", "rev": "a03f318104db1a74791746595829de4c2d53e658",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -16,6 +31,7 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
} }
} }

View file

@ -1,35 +1,64 @@
{ {
description = "Play YouTube videos from the command line in a convenient way"; description = "Play YouTube videos from the command line in a convenient way";
outputs = { self, nixpkgs }: { inputs.flake-utils.url = "github:numtide/flake-utils";
packages.x86_64-linux.tyt = outputs = { self, nixpkgs, flake-utils }:
with import nixpkgs { system = "x86_64-linux"; };
stdenv.mkDerivation { flake-utils.lib.eachDefaultSystem
(system:
let
pkgs = nixpkgs.legacyPackages.${system};
name = "tyt"; # Use mpv with scripts
src = self; mpv = (pkgs.mpv-with-scripts.override {
scripts = [
pkgs.mpvScripts.mpris
pkgs.mpvScripts.sponsorblock
];
});
buildInputs = [ dependencies = with pkgs; [
jq jq
mpv mpv
youtube-dl youtube-dl
]; ];
patchPhase = '' in
substituteInPlace tyt \ {
--replace jq ${jq}/bin/jq \
--replace mpv ${mpv}/bin/mpv \
--replace youtube-dl ${youtube-dl}/bin/youtube-dl
'';
installPhase = ''
install -m 755 -D tyt $out/bin/tyt
'';
};
defaultPackage.x86_64-linux = self.packages.x86_64-linux.tyt; # Package
}; packages.tyt =
pkgs.stdenv.mkDerivation {
name = "tyt";
src = self;
buildInputs = dependencies;
patchPhase = with pkgs; ''
substituteInPlace tyt \
--replace jq ${jq}/bin/jq \
--replace mpv ${mpv}/bin/mpv \
--replace youtube-dl ${youtube-dl}/bin/youtube-dl
'';
installPhase = ''
install -m 755 -D tyt $out/bin/tyt
'';
};
defaultPackage = self.packages.${system}.tyt;
# Development shell
devShell = pkgs.mkShell {
buildInputs = dependencies;
};
}
);
} }