1
0
Fork 0

Configure kassandra config better

This commit is contained in:
Malte Brandy 2021-04-27 14:26:09 +02:00
parent 679eb18400
commit 140763b529
No known key found for this signature in database
GPG key ID: 226A2D41EF5378C9
6 changed files with 153 additions and 74 deletions

View file

@ -1,9 +1,34 @@
{ ... }: {
{ pkgs, ... }: let
dhallFiles = pkgs.runCommand "kassandra-config-src" {} ''
mkdir $out
${pkgs.kassandra2}/bin/kassandra2 print-types > $out/types.dhall
ln -s ${./kassandra}/{config,backend}.dhall $out
ln -s ${../../private/kassandra-uiConfig.dhall} $out/uiConfig.dhall
'';
backend = pkgs.dhallPackages.buildDhallPackage {
name = "kassandra-backend-config";
code = "${dhallFiles}/backend.dhall : (${dhallFiles}/types.dhall).BackendConfig";
source = true;
dependencies = [ pkgs.dhallPackages.Prelude ];
};
standalone = pkgs.dhallPackages.buildDhallPackage {
name = "kassandra-standalone-config";
code = "${dhallFiles}/config.dhall : (${dhallFiles}/types.dhall).StandaloneConfig";
source = true;
dependencies = [ pkgs.dhallPackages.Prelude ];
};
dhallResult = pkgs.runCommand "kassandra-config" {} ''
mkdir $out
ln -s ${backend}/source.dhall $out/backend.dhall
ln -s ${standalone}/source.dhall $out/config.dhall
'';
in
{
home.file = {
"kassandra-config" = {
target = ".config/kassandra";
source = ./kassandra;
recursive = true;
source = dhallResult.out;
};
};
}

View file

@ -117,6 +117,127 @@ StandaloneAccount = < RemoteAccount :
}
}
>,
BackendConfig = { users :
List
{ mapKey : Text
, mapValue :
{ passwordHash : Text
, userConfig :
{ localBackend :
< TaskwarriorBackend :
{ taskRcPath : Optional Text
, taskDataPath : Optional Text
, taskConfig : List { name : Text, value : Text }
, taskBin : Optional Text
, hookListenPort :
< Port : { port : Natural }
| PortRange : { min : Natural, max : Natural }
>
, hookSuffix : Text
, createHooksOnStart : Bool
, removeHooksOnExit : Bool
}
| GitBackend :
{ directoryPath : Text
, commit : Bool
, configureMerge : Bool
, createIfMissing : Bool
, origin : Optional Text
, pushOnWrite : Bool
, watchFiles : Bool
, pullTimerSeconds : Optional Natural
}
>
, uiConfig :
{ viewList :
List
< SearchWidget
| ConfigListWidget :
{ name : Text, limit : Optional Natural }
>
, configuredLists :
List
{ name : Text
, list :
< QueryList :
{ query :
List
< HasProperty :
{ property :
< DescriptionMatches :
{ filter : Text }
| ParentBlocked
| Blocked
| Waiting
| Pending
| Completed
| Deleted
| IsParent
| OnList
| HasTag : { tag : Text }
| HasParent
>
}
| HasntProperty :
{ property :
< DescriptionMatches :
{ filter : Text }
| ParentBlocked
| Blocked
| Waiting
| Pending
| Completed
| Deleted
| IsParent
| OnList
| HasTag : { tag : Text }
| HasParent
>
}
>
}
| TagList : { name : Text }
| DefinitionList :
{ elements :
List
< ConfigList :
{ name : Text
, limit : Optional Natural
}
| ListElement :
{ item :
< TaskwarriorTask :
{ uuid : Text }
| AdHocTask :
{ description : Text }
| HabiticaTask :
{ task :
< HabiticaDaily
| HabiticaTodo
>
}
| Mail : { id : Text }
>
}
>
}
| ChildrenList : { uuid : Text }
| DependenciesList : { uuid : Text }
| HabiticaList :
{ list : < HabiticaDailys | HabiticaTodos > }
| Mails
>
}
, uiFeatures :
{ sortInTag : Bool
, treeOption : < NoTree | PartOfTree | DependsTree >
}
}
}
, filterTag : Text
}
}
},
Widget = < SearchWidget | ConfigListWidget : { name : Text, limit : Optional Natural } >,
NamedListQuery = { name : Text
, list :

View file

@ -1,69 +0,0 @@
let types = ./types.dhall
let Prelude =
{ List.map
=
https://prelude.dhall-lang.org/v20.1.0/List/map.dhall sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680
}
let confWid =
\(name : Text) ->
types.Widget.ConfigListWidget { name, limit = None Natural }
let listElement =
\(el : types.ListItem) ->
types.DefinitionElement.ListElement { item = el }
let simpleTask =
\(desc : Text) ->
listElement (types.ListItem.AdHocTask { description = desc })
let defList =
\(name : Text) ->
\(list : List types.DefinitionElement) ->
{ name, list = types.ListQuery.DefinitionList { elements = list } }
let defSimpleList =
\(name : Text) ->
\(list : List Text) ->
defList
name
(Prelude.List.map Text types.DefinitionElement simpleTask list)
in { configuredLists =
[ { name = "Task Baum", list = types.ListQuery.TagList { name = "root" } }
, defSimpleList
"Orga Routine"
[ "Maintenance"
, "Kassandra 1 Dialog"
, "Inbox sortieren"
, "Tasks in Taskbaum einsortieren"
, "Tagesagenda für morgen mit Taglisten"
, "Habitica kontrollieren"
, "Await checken"
]
, defSimpleList "Wochen Routine" [ "Projekte durchgehen" ]
, defSimpleList
"Tee kochen"
[ "Wasser filtern"
, "Wasser kochen"
, "Wasser aufgießen"
, "Teebeutel entnehmen"
, "Neues Wasser filtern"
]
, defList
"Morgen Routine"
[ simpleTask "Wiegen"
, simpleTask "Podcast anmachen"
, simpleTask "Anziehen"
, types.DefinitionElement.ConfigList
{ name = "Tee kochen", limit = None Natural }
, simpleTask "Zähne Putzen"
, simpleTask "Rasieren"
, simpleTask "Frühstücken"
]
]
, uiFeatures = { sortInTag = False, treeOption = types.TreeOption.NoTree }
, viewList =
[ confWid "Task Baum", confWid "Orga Routine", confWid "Morgen Routine" ]
}

View file

@ -0,0 +1 @@
../../../private/kassandra-uiConfig.dhall

View file

@ -34,7 +34,7 @@
"branch": "master",
"ref": "master",
"repo": "git@hera.m-0.eu:kassandra2",
"rev": "23a25a654dd571e64db80b1920fc6105b9628505",
"rev": "0f2e5ad6580f00029d2c18357dbaadb9528cc48e",
"type": "git"
},
"logfeed": {

View file

@ -12,6 +12,7 @@ in {
upterm = unstable.upterm;
syncthing = unstable.syncthing;
vimPlugins = unstable.vimPlugins;
dhallPackages = unstable.dhallPackages;
fzf = unstable.fzf;
matrix-synapse-tools.rust-synapse-compress-state = unstable.matrix-synapse-tools.rust-synapse-compress-state;
}

@ -1 +1 @@
Subproject commit 4936a6fc7e714c182f355d246db0a085c0602a12
Subproject commit 5795136d2dd2a4619933e2a7a0a779e96ca81e5a