initial commit
This commit is contained in:
commit
29f294cae0
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
/old
|
||||
/result
|
||||
/init.nix
|
21
README.md
Normal file
21
README.md
Normal file
@ -0,0 +1,21 @@
|
||||
# Swatch
|
||||
Swatch Internet Time
|
||||
|
||||
## Requirements
|
||||
* `getopts`
|
||||
* `gawk`
|
||||
|
||||
## Usage
|
||||
`swatch` returns current swatch beats in format @XXX.YYY
|
||||
`swatch -s` returns in format @XXX
|
||||
`swatch -h` displays help
|
||||
|
||||
## Installation
|
||||
`swatch.sh` contains the script, and can be added to your path.
|
||||
|
||||
### Nix Flake
|
||||
|
||||
`flake.nix` and `flake.lock` define a working nix flake for installing the script.
|
||||
|
||||
## Author
|
||||
Shaun Kerr - [s@p7.co.nz](mailto:s@p7.co.nz)
|
27
flake.lock
Normal file
27
flake.lock
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1601475821,
|
||||
"narHash": "sha256-7AI8j/xq5slauMGwC3Dp2K9TKDyDtBXBebeyWsE9euE=",
|
||||
"owner": "Nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b4db68ff563895eea6aab4ff24fa04ef403dfe14",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Nixos",
|
||||
"ref": "nixos-20.03",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
29
flake.nix
Normal file
29
flake.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
description = "swatch beat internet time";
|
||||
inputs.nixpkgs.url = github:Nixos/nixpkgs/nixos-20.03;
|
||||
outputs = { self, nixpkgs }: {
|
||||
defaultPackage.x86_64-linux =
|
||||
with import nixpkgs { system = "x86_64-linux"; };
|
||||
stdenv.mkDerivation rec {
|
||||
name = "swatch-${version}";
|
||||
version = "1.0.0";
|
||||
meta = {
|
||||
description = "Display the current swatch beats";
|
||||
longDescription = ''
|
||||
Prints the current Swatch Internet Time.
|
||||
Optional short form.
|
||||
'';
|
||||
homepage = https://github.com/techieAgnostic/swatch;
|
||||
maintainers = [ "Shaun Kerr - s@p7.co.nz" ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
src = self;
|
||||
buildInputs = [
|
||||
gawk
|
||||
utillinux
|
||||
];
|
||||
buildPhase = "cp ./swatch.sh ./swatch";
|
||||
installPhase = "mkdir -p $out/bin; install -t $out/bin swatch";
|
||||
};
|
||||
};
|
||||
}
|
37
swatch.sh
Executable file
37
swatch.sh
Executable file
@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
##
|
||||
# Displays the current Swatch Internet Time
|
||||
#
|
||||
# -shaun kerr.
|
||||
##
|
||||
|
||||
set -e
|
||||
|
||||
function usage {
|
||||
cat <<EOF
|
||||
Usage: $0 [-s -h]
|
||||
|
||||
Displays the current Swatch Internet Time
|
||||
|
||||
-s | Do not display fractions
|
||||
-h | Show help
|
||||
EOF
|
||||
}
|
||||
|
||||
while getopts "sh" o; do
|
||||
case $o in
|
||||
s) fmt="@%03d\n" ;;
|
||||
h) usage; exit 0 ;;
|
||||
*) usage; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
seconds=$(date -u +"%-S")
|
||||
minutes=$(date -u +"%-M")
|
||||
hours=$((($(date -u +"%-H")+1)%24))
|
||||
if [ -z $fmt ]; then fmt="@%07.3f\n"; fi
|
||||
|
||||
awk -v b="$((seconds + minutes*60 + hours*3600 ))" \
|
||||
-v fmt="$fmt" \
|
||||
'BEGIN { printf(fmt,b/86.4); }'
|
Loading…
Reference in New Issue
Block a user