Configure kassandra config better
This commit is contained in:
parent
679eb18400
commit
140763b529
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 :
|
||||
|
|
|
@ -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" ]
|
||||
}
|
1
home-manager/roles/kassandra/uiConfig.dhall
Symbolic link
1
home-manager/roles/kassandra/uiConfig.dhall
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../private/kassandra-uiConfig.dhall
|
|
@ -34,7 +34,7 @@
|
|||
"branch": "master",
|
||||
"ref": "master",
|
||||
"repo": "git@hera.m-0.eu:kassandra2",
|
||||
"rev": "23a25a654dd571e64db80b1920fc6105b9628505",
|
||||
"rev": "0f2e5ad6580f00029d2c18357dbaadb9528cc48e",
|
||||
"type": "git"
|
||||
},
|
||||
"logfeed": {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
2
private
2
private
|
@ -1 +1 @@
|
|||
Subproject commit 4936a6fc7e714c182f355d246db0a085c0602a12
|
||||
Subproject commit 5795136d2dd2a4619933e2a7a0a779e96ca81e5a
|
Loading…
Reference in a new issue