diff --git a/.vscode/settings.json b/.vscode/settings.json index 0baf00e..7015721 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,5 @@ { "rust-analyzer.linkedProjects": [ - "./helloworld/Cargo.toml", + "./webcam-streamer/Cargo.toml", ] } \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 97a944e..1710464 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,5 +3,5 @@ version = 3 [[package]] -name = "helloworld" +name = "webcam-streamer" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 3076892..047417b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,3 @@ [workspace] -members = ["helloworld"] +members = ["webcam-streamer"] resolver = "2" diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..dd4af0e --- /dev/null +++ b/flake.lock @@ -0,0 +1,96 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1699099776, + "narHash": "sha256-X09iKJ27mGsGambGfkKzqvw5esP1L/Rf8H3u3fCqIiU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "85f1ba3e51676fa8cc604a3d863d729026a6b8eb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1681358109, + "narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "96ba1c52e54e74c3197f4d43026b3f3d92e83ff9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1699236891, + "narHash": "sha256-J0uhoYlufJncIFbM/pAoggzHK/qERB9KfQRkmYD56yo=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "a7f9bf91dc5065d470cd57169a9f2ebdbdfe1f24", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index ff7dbee..a5f9cae 100644 --- a/flake.nix +++ b/flake.nix @@ -1,20 +1,9 @@ -/* -TODO -1. Find and replace "helloworld" with your package name for **ALL FILES IN REPOSITORY** -2. Add a flake description that describes the workspace on line 27 -3. Add a package description on line 70 -4. (optional) uncomment `nativeBuildInputs` and `buildInputs` on lines 43 and 44 if you need openssl -5. (optional) set your project homepage, license, and maintainers list on lines 48-51 -6. (optional) uncomment the NixOS module and update it for your needs -7. Delete this comment block -*/ - /* Some utility commands: - `nix flake update --commit-lock-file` - `nix flake lock update-input ` -- `nix build .#helloworld` or `nix build .` -- `nix run .#helloworld` or `nix run .` +- `nix build .#webcam-streamer` or `nix build .` +- `nix run .#webcam-streamer` or `nix run .` */ { @@ -53,14 +42,14 @@ Some utility commands: cargo-edit bacon ]; - inputsFrom = with self.packages.${system}; [ helloworld ]; + inputsFrom = with self.packages.${system}; [ webcam-streamer ]; }; packages.${system} = { - default = self.packages.${system}.helloworld; - helloworld = pkgs.rustPlatform.buildRustPackage (rustSettings // { - pname = "helloworld"; + default = self.packages.${system}.webcam-streamer; + webcam-streamer = pkgs.rustPlatform.buildRustPackage (rustSettings // { + pname = "webcam-streamer"; version = "0.1.0"; - buildAndTestSubdir = "helloworld"; + buildAndTestSubdir = "webcam-streamer"; cargoHash = "sha256-+TaGIiKf+Pz2bTABeG8aCZz0/ZTCKl5398+qbas4Nvo="; meta = meta // { description = ""; @@ -71,14 +60,14 @@ Some utility commands: nixosModules.default = { config, ... }: let lib = nixpkgs.lib; in { - options.services.helloworld = { - enable = lib.mkEnableOption (lib.mdDoc "helloworld service"); + options.services.webcam-streamer = { + enable = lib.mkEnableOption (lib.mdDoc "webcam-streamer service"); package = lib.mkOption { type = lib.types.package; - default = self.packages.${system}.helloworld; - defaultText = "pkgs.helloworld"; + default = self.packages.${system}.webcam-streamer; + defaultText = "pkgs.webcam-streamer"; description = lib.mdDoc '' - The helloworld package that should be used. + The webcam-streamer package that should be used. ''; }; port = lib.mkOption { @@ -89,16 +78,16 @@ Some utility commands: ''; }; }; - config.systemd.services.helloworld = let - cfg = config.services.helloworld; - pkg = self.packages.${system}.helloworld; + config.systemd.services.webcam-streamer = let + cfg = config.services.webcam-streamer; + pkg = self.packages.${system}.webcam-streamer; in lib.mkIf cfg.enable { description = pkg.meta.description; after = [ "network.target" ]; wantedBy = [ "network.target" ]; serviceConfig = { ExecStart = '' - ${cfg.package}/bin/helloworld --port ${builtins.toString cfg.port} + ${cfg.package}/bin/webcam-streamer --port ${builtins.toString cfg.port} ''; Restart = "always"; DynamicUser = true; diff --git a/helloworld/Cargo.toml b/webcam-streamer/Cargo.toml similarity index 86% rename from helloworld/Cargo.toml rename to webcam-streamer/Cargo.toml index 5371865..c9b31a4 100644 --- a/helloworld/Cargo.toml +++ b/webcam-streamer/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "helloworld" +name = "webcam-streamer" version = "0.1.0" edition = "2021" diff --git a/helloworld/src/main.rs b/webcam-streamer/src/main.rs similarity index 100% rename from helloworld/src/main.rs rename to webcam-streamer/src/main.rs