Compare commits

...

2 Commits

Author SHA1 Message Date
ecd76439f3 add basic nixosModule for tasklist 2023-10-04 16:41:46 +02:00
ef05bf17fb add flag for db path 2023-10-04 16:09:47 +02:00
2 changed files with 58 additions and 5 deletions

View File

@@ -3,9 +3,58 @@
outputs = { self, nixpkgs }: {
packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
packages.x86_64-linux.tasklist = nixpkgs.legacyPackages.x86_64-linux.buildGoModule rec {
pname = "tasklist";
version = "1.0";
vendorHash = "sha256-olHQNClxU4sykBlhlbvTL6wCUYkMxnaQdLnRwvuJffw=";
src = ./.;
};
packages.x86_64-linux.default = self.packages.x86_64-linux.hello;
nixosModules.malobeo-tasklist = { config, ... }:
let
cfg = config.services.malobeo-tasklist;
tasklist-pkg = self.packages.x86_64-linux.tasklist;
in
{
options = {
services.malobeo-tasklist = {
enable = nixpkgs.lib.mkOption {
default = false;
type = nixpkgs.types.bool;
description = nixpkgs.lib.mdDoc ''
Enables tasklist
'';
};
};
};
config = nixpkgs.lib.mkIf cfg.enable {
environment.systemPackages = [ tasklist-pkg];
users.users = {
malobeo-tasklist = {
description = "malobeo tasklist user";
group = "malobeo-tasklist";
isNormalUser = true;
};
};
systemd.services.malobeo-tasklist = {
description = "malobeo tasklist daemon";
serviceConfig = {
Type = "simple";
ExecStart = "${tasklist-pkg}/bin/tasklist -d /var/lib/malobeo-tasklist/tasklist.db";
Restart = "on-failure";
};
wantedBy = [ "default.target" ];
environment = {
USER = "malobeo-tasklist";
HOME = /var/lib/malobeo-tasklist;
};
};
};
};
};
}

10
main.go
View File

@@ -2,6 +2,7 @@ package main
import (
"database/sql"
"flag"
"fmt"
"html/template"
"log"
@@ -58,8 +59,8 @@ func GetDefaultTasks() []Task {
}
}
func InitDB() *sql.DB {
db, err := sql.Open("sqlite3", DB_NAME)
func InitDB(db_name string) *sql.DB {
db, err := sql.Open("sqlite3", db_name)
if err != nil {
log.Fatal(err)
}
@@ -198,7 +199,10 @@ const TASK_DAY = time.Tuesday
const AMOUNT_DAYS = 4
func main() {
db := InitDB()
dbName := flag.String("d", DB_NAME, "path to db file")
flag.Parse()
db := InitDB(*dbName)
defer db.Close()
if db == nil {