cleanup pkgs folder
This commit is contained in:
parent
b7b0535b74
commit
0671e6b3c5
17 changed files with 0 additions and 955 deletions
|
@ -1,96 +0,0 @@
|
||||||
# NixOs fhs-user script
|
|
||||||
# ---------------------
|
|
||||||
#
|
|
||||||
# this is a script to start Bitwig Studio.
|
|
||||||
# it is necessary because without it my VSTs won't run.
|
|
||||||
|
|
||||||
# function header
|
|
||||||
# ---------------
|
|
||||||
{ pkgs ? import <nixpkgs> { } }:
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
# function call
|
|
||||||
# -------------
|
|
||||||
in
|
|
||||||
(pkgs.buildFHSUserEnv {
|
|
||||||
|
|
||||||
# name of the programm
|
|
||||||
# --------------------
|
|
||||||
name = "bitwig";
|
|
||||||
|
|
||||||
# targetSystem packages
|
|
||||||
# ---------------------
|
|
||||||
# these are packages which are compiled for the target
|
|
||||||
# system architecture
|
|
||||||
targetPkgs = pkgs:
|
|
||||||
with pkgs; [
|
|
||||||
|
|
||||||
bitwig-studio3
|
|
||||||
|
|
||||||
liblo
|
|
||||||
zlib
|
|
||||||
fftw
|
|
||||||
minixml
|
|
||||||
libcxx
|
|
||||||
alsaLib
|
|
||||||
glibc
|
|
||||||
|
|
||||||
gtk2-x11
|
|
||||||
atk
|
|
||||||
mesa_glu
|
|
||||||
glib
|
|
||||||
pango
|
|
||||||
gdk_pixbuf
|
|
||||||
cairo
|
|
||||||
freetype
|
|
||||||
fontconfig
|
|
||||||
dbus
|
|
||||||
xorg.libX11
|
|
||||||
xorg.libxcb
|
|
||||||
xorg.libXext
|
|
||||||
xorg.libXinerama
|
|
||||||
xlibs.libXi
|
|
||||||
xlibs.libXcursor
|
|
||||||
xlibs.libXdamage
|
|
||||||
xlibs.libXcomposite
|
|
||||||
xlibs.libXfixes
|
|
||||||
xlibs.libXrender
|
|
||||||
xlibs.libXtst
|
|
||||||
xlibs.libXScrnSaver
|
|
||||||
|
|
||||||
gnome2.GConf
|
|
||||||
nss
|
|
||||||
nspr
|
|
||||||
expat
|
|
||||||
eudev
|
|
||||||
|
|
||||||
# vsts
|
|
||||||
zynaddsubfx
|
|
||||||
distrho
|
|
||||||
zam-plugins
|
|
||||||
wolf-shaper
|
|
||||||
wolf-spectrum
|
|
||||||
lsp-plugins
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
# multilib packages
|
|
||||||
# -----------------
|
|
||||||
# these are packages compiled for multiple system
|
|
||||||
# architectures (32bit/64bit)
|
|
||||||
multiPkgs = pkgs: with pkgs; [ ];
|
|
||||||
|
|
||||||
# command
|
|
||||||
# -------
|
|
||||||
# the script which should be run right after starting this enviornment
|
|
||||||
#runScript = "/bin/bash";
|
|
||||||
runScript = "/usr/bin/bitwig-studio";
|
|
||||||
|
|
||||||
# environment variables
|
|
||||||
# ---------------------
|
|
||||||
profile = ''
|
|
||||||
export TERM="xterm"
|
|
||||||
'';
|
|
||||||
|
|
||||||
})
|
|
|
@ -1,139 +0,0 @@
|
||||||
{ stdenv
|
|
||||||
, fetchurl
|
|
||||||
, alsaLib
|
|
||||||
, bzip2
|
|
||||||
, cairo
|
|
||||||
, dpkg
|
|
||||||
, freetype
|
|
||||||
, gdk_pixbuf
|
|
||||||
, glib
|
|
||||||
, gtk2
|
|
||||||
, harfbuzz
|
|
||||||
, jdk
|
|
||||||
, lib
|
|
||||||
, xorg
|
|
||||||
, libbsd
|
|
||||||
, libjack2
|
|
||||||
, libpng
|
|
||||||
, libxkbcommon
|
|
||||||
, makeWrapper
|
|
||||||
, pixman
|
|
||||||
, xdg_utils
|
|
||||||
, zenity
|
|
||||||
, zlib
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "bitwig-studio-${version}";
|
|
||||||
version = "1.3.16";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url =
|
|
||||||
"https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
|
|
||||||
sha256 = "0n0fxh9gnmilwskjcayvjsjfcs3fz9hn00wh7b3gg0cv3qqhich8";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ dpkg makeWrapper ];
|
|
||||||
|
|
||||||
unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
|
|
||||||
|
|
||||||
dontBuild = true;
|
|
||||||
dontPatchELF = true;
|
|
||||||
dontStrip = true;
|
|
||||||
|
|
||||||
libPath = with xorg;
|
|
||||||
lib.makeLibraryPath [
|
|
||||||
alsaLib
|
|
||||||
bzip2.out
|
|
||||||
cairo
|
|
||||||
freetype
|
|
||||||
gdk_pixbuf
|
|
||||||
glib
|
|
||||||
gtk2
|
|
||||||
harfbuzz
|
|
||||||
libX11
|
|
||||||
libXau
|
|
||||||
libXcursor
|
|
||||||
libXdmcp
|
|
||||||
libXext
|
|
||||||
libXfixes
|
|
||||||
libXrender
|
|
||||||
libbsd
|
|
||||||
libjack2
|
|
||||||
libpng
|
|
||||||
libxcb
|
|
||||||
libxkbfile
|
|
||||||
pixman
|
|
||||||
xcbutil
|
|
||||||
xcbutilwm
|
|
||||||
zlib
|
|
||||||
];
|
|
||||||
|
|
||||||
binPath = lib.makeBinPath [ xdg_utils zenity ];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out
|
|
||||||
cp -r opt/bitwig-studio $out/libexec
|
|
||||||
|
|
||||||
# Use NixOS versions of these libs instead of the bundled ones.
|
|
||||||
(
|
|
||||||
cd $out/libexec/lib/bitwig-studio
|
|
||||||
rm libbz2.so* libxkbfile.so* libXcursor.so* libXau.so* \
|
|
||||||
libXdmcp.so* libpng16.so* libxcb*.so* libharfbuzz.so* \
|
|
||||||
libcairo.so* libfreetype.so*
|
|
||||||
ln -s ${bzip2.out}/lib/libbz2.so.1.0.6 libbz2.so.1.0
|
|
||||||
)
|
|
||||||
|
|
||||||
# Use our OpenJDK instead of Bitwig’s bundled—and commercial!—one.
|
|
||||||
rm -rf $out/libexec/lib/jre
|
|
||||||
ln -s ${jdk.home}/jre $out/libexec/lib/jre
|
|
||||||
|
|
||||||
# Bitwig’s `libx11-windowing-system.so` has several problems:
|
|
||||||
#
|
|
||||||
# • has some old version of libxkbcommon linked statically (ಠ_ಠ),
|
|
||||||
#
|
|
||||||
# • hardcodes path to `/usr/share/X11/xkb`,
|
|
||||||
#
|
|
||||||
# • even if we redirected it with libredirect (after adding
|
|
||||||
# `eaccess()` to libredirect!), their version of libxkbcommon
|
|
||||||
# is unable to parse our xkeyboardconfig. Been there, done that.
|
|
||||||
#
|
|
||||||
# However, it suffices to override theirs with our libxkbcommon
|
|
||||||
# in LD_PRELOAD. :-)
|
|
||||||
|
|
||||||
find $out -type f -executable \
|
|
||||||
-not -name '*.so.*' \
|
|
||||||
-not -name '*.so' \
|
|
||||||
-not -path '*/resources/*' | \
|
|
||||||
while IFS= read -r f ; do
|
|
||||||
patchelf \
|
|
||||||
--set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
|
|
||||||
$f && \
|
|
||||||
wrapProgram $f \
|
|
||||||
--prefix PATH : "${binPath}" \
|
|
||||||
--prefix LD_LIBRARY_PATH : "${libPath}" \
|
|
||||||
--set LD_PRELOAD "${libxkbcommon.out}/lib/libxkbcommon.so" || true
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir -p $out/bin
|
|
||||||
ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio
|
|
||||||
|
|
||||||
cp -r usr/share $out/share
|
|
||||||
substitute usr/share/applications/bitwig-studio.desktop \
|
|
||||||
$out/share/applications/bitwig-studio.desktop \
|
|
||||||
--replace /usr/bin/bitwig-studio $out/bin/bitwig-studio
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "A digital audio workstation";
|
|
||||||
longDescription = ''
|
|
||||||
Bitwig Studio is a multi-platform music-creation system for
|
|
||||||
production, performance and DJing, with a focus on flexible
|
|
||||||
editing tools and a super-fast workflow.
|
|
||||||
'';
|
|
||||||
homepage = "http://www.bitwig.com/";
|
|
||||||
license = licenses.unfree;
|
|
||||||
platforms = [ "x86_64-linux" ];
|
|
||||||
maintainers = with maintainers; [ michalrus mrVanDalo ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{ lib, fetchurl, bitwig-studio1, xdg_utils, zenity, ffmpeg }:
|
|
||||||
|
|
||||||
bitwig-studio1.overrideAttrs (oldAttrs: rec {
|
|
||||||
name = "bitwig-studio-${version}";
|
|
||||||
version = "2.2.2";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url =
|
|
||||||
"https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
|
|
||||||
sha256 = "1x4wka32xlygmhdh9rb15s37zh5qjrgap2qk35y34c52lf5aak22";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = bitwig-studio1.buildInputs ++ [ ffmpeg ];
|
|
||||||
|
|
||||||
binPath = lib.makeBinPath [ ffmpeg xdg_utils zenity ];
|
|
||||||
})
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ stdenv, fetchurl, bitwig-studio2, xorg, ... }:
|
|
||||||
|
|
||||||
bitwig-studio2.overrideAttrs (oldAttrs: rec {
|
|
||||||
name = "bitwig-studio-${version}";
|
|
||||||
version = "3.2.8";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url =
|
|
||||||
"https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
|
|
||||||
sha256 = "18ldgmnv7bigb4mch888kjpf4abalpiwmlhwd7rjb9qf6p72fhpj";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = bitwig-studio2.buildInputs ++ [ xorg.libXtst ];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
${oldAttrs.installPhase}
|
|
||||||
|
|
||||||
# recover commercial jre
|
|
||||||
rm -f $out/libexec/lib/jre
|
|
||||||
cp -r opt/bitwig-studio/lib/jre $out/libexec/lib
|
|
||||||
'';
|
|
||||||
|
|
||||||
})
|
|
|
@ -6,13 +6,9 @@ let callPackage = super.pkgs.callPackage;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
#bitwig-studio3 = callPackage ./bitwig-studio/bitwig-studio3.nix { };
|
|
||||||
emo = callPackage ./emoji { };
|
|
||||||
light-control = callPackage ./light-control { };
|
|
||||||
otpmenu = callPackage ./otpmenu { };
|
otpmenu = callPackage ./otpmenu { };
|
||||||
#sononym = callPackage ./sononym { };
|
#sononym = callPackage ./sononym { };
|
||||||
#sononym-crawler = callPackage ./sononym-crawler { };
|
#sononym-crawler = callPackage ./sononym-crawler { };
|
||||||
taskwarrior-hooks = callPackage ./taskwarrior-hooks { };
|
taskwarrior-hooks = callPackage ./taskwarrior-hooks { };
|
||||||
terminal-tools = callPackage ./terminal-tools { };
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
{ coreutils, dmenu, gnused, writeShellScriptBin, writeText, xdotool, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
# from http://asciimoji.com/
|
|
||||||
emoticons = writeText "emoticons" ''
|
|
||||||
¯\(°_o)/¯ | dunno lol shrug dlol
|
|
||||||
¯\_(ツ)_/¯ | dunno lol shrug dlol
|
|
||||||
( ͡° ͜ʖ ͡°) | lenny
|
|
||||||
¯\_( ͡° ͜ʖ ͡°)_/¯ | lenny shrug dlol
|
|
||||||
( ゚д゚) | aaah sad noo
|
|
||||||
ヽ(^o^)丿 | hi yay yey hello
|
|
||||||
(^o^; | ups hehe
|
|
||||||
(^∇^) | yay yey
|
|
||||||
┗(`皿´)┛ | angry argh
|
|
||||||
ヾ(^_^) byebye!! | bye
|
|
||||||
<(^.^<) <(^.^)> (>^.^)> (7^.^)7 (>^.^<) | dance
|
|
||||||
(-.-)Zzz... | sleep
|
|
||||||
(∩╹□╹∩) | oh noes woot
|
|
||||||
™ | tm
|
|
||||||
ζ | zeta
|
|
||||||
(╯°□°)╯ ┻━┻ | table flip
|
|
||||||
(」゜ロ゜)」 | why woot
|
|
||||||
(= ФェФ=) | cat
|
|
||||||
(。◕‿‿◕。) | cute
|
|
||||||
☜(゚ヮ゚☜) | you
|
|
||||||
x⸑x | dead
|
|
||||||
☉ ‿ ⚆ | derp
|
|
||||||
(҂◡_◡) ᕤ | endure
|
|
||||||
(*・‿・)ノ⌒*:・゚✧ | glitter
|
|
||||||
(⌐⊙_⊙) | nerd
|
|
||||||
WHΣИ $HΛLL WΣ MΣΣ† ΛGΛ|И? | when shall we meet again
|
|
||||||
✔ | check
|
|
||||||
(◕ᴥ◕ʋ) | dog
|
|
||||||
(ノ◕ヮ◕)ノ*:・゚✧ | excited
|
|
||||||
(❍ᴥ❍ʋ) | jake dog
|
|
||||||
L(° O °L) | lol
|
|
||||||
o()xxxx[{::::::::::::::::::> | sword
|
|
||||||
(ÒДÓױ) | what wat
|
|
||||||
Yᵒᵘ Oᶰˡʸ Lᶤᵛᵉ Oᶰᶜᵉ | yolo
|
|
||||||
⊹╰(⌣ʟ⌣)╯⊹ | zen
|
|
||||||
@}-,-`- | rose
|
|
||||||
'';
|
|
||||||
|
|
||||||
in
|
|
||||||
writeShellScriptBin "emoticons" ''
|
|
||||||
set -efu
|
|
||||||
|
|
||||||
data=$(${coreutils}/bin/cat ${emoticons})
|
|
||||||
emoticon=$(echo "$data" | ${dmenu}/bin/dmenu -l 10 | ${gnused}/bin/sed 's/ | .*//')
|
|
||||||
${xdotool}/bin/xdotool type -- "$emoticon"
|
|
||||||
exit 0
|
|
||||||
''
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ pkgs, lib, ... }:
|
|
||||||
|
|
||||||
pkgs.writers.writePython3Bin "gitlog2json"
|
|
||||||
{
|
|
||||||
libraries = [
|
|
||||||
pkgs.python3Packages.GitPython
|
|
||||||
pkgs.python3Packages.click
|
|
||||||
pkgs.python3Packages.elasticsearch
|
|
||||||
];
|
|
||||||
}
|
|
||||||
(lib.fileContents ./gitlog2json.py)
|
|
|
@ -1,73 +0,0 @@
|
||||||
import datetime
|
|
||||||
from git import Repo
|
|
||||||
import os
|
|
||||||
import json
|
|
||||||
import click
|
|
||||||
|
|
||||||
from elasticsearch import Elasticsearch
|
|
||||||
|
|
||||||
|
|
||||||
class GitLogger:
|
|
||||||
"""to provide a log as dict of commits which are json printable"""
|
|
||||||
|
|
||||||
def __init__(self, path):
|
|
||||||
"""Create a GitStepper with the path to the git repository (not a bare repository)"""
|
|
||||||
self.repo = Repo(path)
|
|
||||||
|
|
||||||
def log(self):
|
|
||||||
"""return a dict of commits"""
|
|
||||||
commits = (self.repo.commit(logEntry) for logEntry in self.repo.iter_commits())
|
|
||||||
return (self.to_dict(x) for x in commits)
|
|
||||||
|
|
||||||
def to_dict(self, commit):
|
|
||||||
"""create a dict out of a commit that is easy to json serialize"""
|
|
||||||
time_difference = commit.authored_datetime - commit.committed_datetime
|
|
||||||
return {
|
|
||||||
"author_email": commit.author.email,
|
|
||||||
"author_name": commit.author.name,
|
|
||||||
"authored_date": commit.authored_datetime.isoformat(),
|
|
||||||
"files": [
|
|
||||||
{"file": file, "changes": changes}
|
|
||||||
for file, changes in commit.stats.files.items()
|
|
||||||
],
|
|
||||||
"committed_date": commit.committed_datetime.isoformat(),
|
|
||||||
"committer_email": commit.committer.email,
|
|
||||||
"committer_name": commit.committer.name,
|
|
||||||
"date_difference_in_seconds": abs(time_difference.total_seconds()),
|
|
||||||
"encoding": commit.encoding,
|
|
||||||
"hash": commit.hexsha,
|
|
||||||
"message": commit.message,
|
|
||||||
"summary": commit.summary,
|
|
||||||
"size": commit.size,
|
|
||||||
"stats_total": commit.stats.total,
|
|
||||||
"parents": [parent.hexsha for parent in commit.parents],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@click.command()
|
|
||||||
@click.argument("path", type=click.Path(exists=True), envvar="PWD")
|
|
||||||
@click.option("--host")
|
|
||||||
@click.option("--index")
|
|
||||||
@click.option("--port", default=9200)
|
|
||||||
def main(path, host, index, port):
|
|
||||||
if host:
|
|
||||||
if not index:
|
|
||||||
print("--index need to be set")
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
print("Sending commits from %s to %s on index %s" % (path, host, index))
|
|
||||||
es = Elasticsearch([{"host": host, "port": port}])
|
|
||||||
for entry in GitLogger(path).log():
|
|
||||||
try:
|
|
||||||
es.index(index=index, doc_type="commit", id=entry["hash"], body=entry)
|
|
||||||
except Exception as e:
|
|
||||||
print(json.dumps(entry))
|
|
||||||
print(e.info)
|
|
||||||
exit(1)
|
|
||||||
else:
|
|
||||||
for entry in GitLogger(path).log():
|
|
||||||
print(json.dumps(entry))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
|
@ -1,25 +0,0 @@
|
||||||
from git import Repo
|
|
||||||
import os
|
|
||||||
|
|
||||||
repo = Repo("/home/palo/dev/nixpkgs")
|
|
||||||
a = repo.head.log()[0]
|
|
||||||
current_hash = a.newhexsha
|
|
||||||
commit = repo.commit(current_hash)
|
|
||||||
commit.author
|
|
||||||
commit.committed_date
|
|
||||||
import json
|
|
||||||
|
|
||||||
json.dumps(
|
|
||||||
{
|
|
||||||
"commit_name": commit.author.name,
|
|
||||||
"message": commit.message,
|
|
||||||
"changes": commit.stats.files,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
commit.committed_date
|
|
||||||
commit.committer.email
|
|
||||||
commit.parents
|
|
||||||
commit.encoding
|
|
||||||
commit.authored_datetime
|
|
||||||
commit.size
|
|
||||||
commit.stats.total
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ pkgs ? import <nixpkgs> { } }:
|
|
||||||
|
|
||||||
pkgs.mkShell {
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
pkgs.python3Packages.GitPython
|
|
||||||
pkgs.python3Packages.ipython
|
|
||||||
pkgs.python3Packages.elasticsearch
|
|
||||||
pkgs.python3Packages.click
|
|
||||||
|
|
||||||
(pkgs.callPackage ./default.nix { })
|
|
||||||
];
|
|
||||||
|
|
||||||
shellHook = ''
|
|
||||||
HISTFILE=${toString ./.}/.history
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
{ rustPlatform, fetchgit, lib, mosquitto, cmake, openssl, ... }:
|
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
|
||||||
name = "light-${version}";
|
|
||||||
version = "2.1.0";
|
|
||||||
src = fetchgit {
|
|
||||||
url = "https://git.ingolf-wagner.de/palo/light-control.git";
|
|
||||||
rev = "6cce678572815aac8d6f78be2ee5177f07e133bd";
|
|
||||||
sha256 = "1bnxvgaa58hga20ywgk728aj4wll2rhxgrdp477d2d8isifvij4v";
|
|
||||||
};
|
|
||||||
|
|
||||||
cargoSha256 = "1hhgk3mpmd143d3kfhxsaz2y5aksnwiz1bh4396hh0j7j4kqbgrw";
|
|
||||||
#cargoSha256 = "05mm82hdbs36p6mr4qdpip16phg28r44lbni09x48qni81dbw3wx";
|
|
||||||
#verifyCargoDeps = true;
|
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
|
||||||
buildInputs = [ mosquitto openssl ];
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "light control over mqtt, with scenes and room tracking";
|
|
||||||
homepage = "https://github.com/mrVanDalo/light-control";
|
|
||||||
license = licenses.gpl3;
|
|
||||||
maintainers = [ maintainers.mrVanDalo ];
|
|
||||||
platforms = platforms.all;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{ writers, fileContents, ... }:
|
|
||||||
pkgs.writers.writePython3Bin "nginx-show-config"
|
|
||||||
{
|
|
||||||
flakeIgnore = [ "E265" "E225" "W292" ];
|
|
||||||
libraries = [ nginx-config-formatter ];
|
|
||||||
}
|
|
||||||
(lib.fileContents ./nginx-show-config.py)
|
|
|
@ -1,40 +0,0 @@
|
||||||
#!/usr/bin/env nix-shell
|
|
||||||
#!nix-shell -p nginx-config-formatter python3 -i python3
|
|
||||||
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import shutil
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
from tempfile import TemporaryDirectory
|
|
||||||
|
|
||||||
|
|
||||||
def nginx_config() -> str:
|
|
||||||
reload_config = "/etc/nginx/nginx.conf"
|
|
||||||
if os.path.exists(reload_config):
|
|
||||||
return reload_config
|
|
||||||
out = subprocess.check_output(["systemctl", "cat", "nginx"])
|
|
||||||
match = re.search(r"-c '(\S+-nginx\.conf)", out.decode("utf-8"))
|
|
||||||
if not match:
|
|
||||||
print("Could not find nginx.conf in nginx.service", file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
return match.group(1)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
config_path = nginx_config()
|
|
||||||
with TemporaryDirectory() as temp_dir:
|
|
||||||
temp_path = os.path.join(temp_dir, "nginx.conf")
|
|
||||||
with open(temp_path, "wb+") as temp_file, open(
|
|
||||||
config_path, "rb"
|
|
||||||
) as config_file:
|
|
||||||
shutil.copyfileobj(config_file, temp_file)
|
|
||||||
temp_file.flush()
|
|
||||||
subprocess.check_call(["nginxfmt", temp_file.name])
|
|
||||||
editor = os.environ.get("EDITOR", "cat")
|
|
||||||
subprocess.check_call([editor, temp_file.name] + sys.argv[1:])
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
|
@ -1,31 +0,0 @@
|
||||||
{ lib, fetchgit, libevent, glew, glfw, ... }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
version = "2019-05-19";
|
|
||||||
name = "pixelnuke-${version}";
|
|
||||||
|
|
||||||
src = fetchgit {
|
|
||||||
url = "https://github.com/defnull/pixelflut.git";
|
|
||||||
rev = "3458157a242ba1789de7ce308480f4e1cbacc916";
|
|
||||||
sha256 = "03dp0p00chy00njl4w02ahxqiwqpjsrvwg8j4yi4dgckkc3gbh40";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ libevent glew glfw ];
|
|
||||||
buildPhase = ''
|
|
||||||
cd pixelnuke
|
|
||||||
make
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp ./pixelnuke $out/bin/
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Multiplayer canvas";
|
|
||||||
homepage = "https://cccgoe.de/wiki/Pixelflut";
|
|
||||||
license = licenses.unknown;
|
|
||||||
platforms = platforms.linux;
|
|
||||||
maintainers = with maintainers; [ mrVanDalo ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
# how to build and test
|
|
||||||
|
|
||||||
```
|
|
||||||
nix-build -E 'with import <nixpkgs> { overlays = [ (import "${<nix-writers>}/pkgs" )];} ; callPackage ./default.nix {}';
|
|
||||||
```
|
|
|
@ -1,362 +0,0 @@
|
||||||
{ pkgs
|
|
||||||
, lib
|
|
||||||
# tzselect is your frind do find timezones
|
|
||||||
, timeZones ? [ ]
|
|
||||||
, timeColor ? 9
|
|
||||||
, timeZoneColor ? 10
|
|
||||||
, calBackgroundColor ? 10
|
|
||||||
, calWeekColor ? 13
|
|
||||||
, calDayColor ? 9
|
|
||||||
, enableIntelBacklight ? true
|
|
||||||
, userHighlight ? [ "palo" ]
|
|
||||||
, enableBattery ? true
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
hrule = "${pkgs.terminal-tools}/bin/hrule";
|
|
||||||
|
|
||||||
q-cal =
|
|
||||||
let
|
|
||||||
|
|
||||||
# Maximum width of cal's output.
|
|
||||||
calwidth = 23;
|
|
||||||
|
|
||||||
# Number of space characters between two calendars.
|
|
||||||
hspace = 2;
|
|
||||||
|
|
||||||
# Return number of columns required to print n calenders side by side.
|
|
||||||
need_width = n: assert n >= 1; n * calwidth + (n - 1) * hspace;
|
|
||||||
|
|
||||||
lpad = n: c: s: if lib.stringLength s < n then lpad n c (c + s) else s;
|
|
||||||
|
|
||||||
pad = ''
|
|
||||||
{
|
|
||||||
${pkgs.gnused}/bin/sed '
|
|
||||||
# rtrim
|
|
||||||
s/ *$//
|
|
||||||
|
|
||||||
# delete last empty line
|
|
||||||
''${/^$/d}
|
|
||||||
' \
|
|
||||||
| ${pkgs.gawk}/bin/awk '{printf "%-${
|
|
||||||
toString calwidth
|
|
||||||
}s\n", $0}' \
|
|
||||||
| ${pkgs.gnused}/bin/sed "
|
|
||||||
# colorize header
|
|
||||||
1,2s/.*/[38;5;${toString calBackgroundColor}m&[39;22m/
|
|
||||||
|
|
||||||
# highlight current week
|
|
||||||
s/^$(${pkgs.coreutils}/bin/date +%W)/[38;5;${
|
|
||||||
toString calWeekColor
|
|
||||||
}m&[39;22m/
|
|
||||||
|
|
||||||
# colorize week number
|
|
||||||
s/^[ 1-9][0-9]/[38;5;${
|
|
||||||
toString calBackgroundColor
|
|
||||||
}m&[39;22m/
|
|
||||||
"
|
|
||||||
}'';
|
|
||||||
in
|
|
||||||
''
|
|
||||||
cols=$(${pkgs.ncurses}/bin/tput cols)
|
|
||||||
${pkgs.coreutils}/bin/paste \
|
|
||||||
<(if test $cols -ge ${toString (need_width 3)}; then
|
|
||||||
${pkgs.utillinux}/bin/cal -mw \
|
|
||||||
$(${pkgs.coreutils}/bin/date +'%m %Y' -d 'last month') \
|
|
||||||
| ${pad}
|
|
||||||
fi) \
|
|
||||||
<(if test $cols -ge ${toString (need_width 1)}; then
|
|
||||||
${pkgs.utillinux}/bin/cal -mw \
|
|
||||||
| ${pkgs.gnused}/bin/sed '
|
|
||||||
# colorize day of month
|
|
||||||
s/\(^\| \)'"$(${pkgs.coreutils}/bin/date +%e)"'\>/[38;5;${
|
|
||||||
toString calDayColor
|
|
||||||
}m&[39;22m/
|
|
||||||
' \
|
|
||||||
| ${pad}
|
|
||||||
fi) \
|
|
||||||
<(if test $cols -ge ${toString (need_width 2)}; then
|
|
||||||
${pkgs.utillinux}/bin/cal -mw \
|
|
||||||
$(${pkgs.coreutils}/bin/date +'%m %Y' -d 'next month') \
|
|
||||||
| ${pad}
|
|
||||||
fi) \
|
|
||||||
| ${pkgs.gnused}/bin/sed '
|
|
||||||
s/^\t//
|
|
||||||
s/\t$//
|
|
||||||
s/\t/${lpad hspace " " ""}/g
|
|
||||||
'
|
|
||||||
'';
|
|
||||||
|
|
||||||
q-timeZoneDate = size: zone:
|
|
||||||
let
|
|
||||||
dateString = comment:
|
|
||||||
"'+[1m%Y-%m-%d[;38;5;0mT[;38;5;${
|
|
||||||
toString timeColor
|
|
||||||
}m%H:%M[m:%S[;38;5;${toString timeZoneColor}m%:z[m ${comment}' ";
|
|
||||||
timeZoneVariable = lib.optionalString (zone != null) "TZ=${zone}";
|
|
||||||
comment = lib.optionalString (zone != null)
|
|
||||||
" : ${lib.fixedWidthString size " " zone}";
|
|
||||||
# sh
|
|
||||||
in
|
|
||||||
''
|
|
||||||
${timeZoneVariable} ${pkgs.coreutils}/bin/date ${
|
|
||||||
dateString comment
|
|
||||||
} | ${pkgs.terminal-tools}/bin/center
|
|
||||||
'';
|
|
||||||
|
|
||||||
q-timeZoneDates =
|
|
||||||
if timeZones == [ ] then
|
|
||||||
q-timeZoneDate 0 null
|
|
||||||
else
|
|
||||||
let size = lib.foldr lib.max 0 (map builtins.stringLength timeZones);
|
|
||||||
in lib.concatMapStringsSep "\n" (q-timeZoneDate size) timeZones;
|
|
||||||
|
|
||||||
q-intel_backlight = ''
|
|
||||||
cd /sys/class/backlight/intel_backlight
|
|
||||||
</dev/null exec ${pkgs.gawk}/bin/awk '
|
|
||||||
END {
|
|
||||||
getline actual_brightness < "actual_brightness"
|
|
||||||
getline max_brightness < "max_brightness"
|
|
||||||
getline brightness < "brightness"
|
|
||||||
printf "%20s │ %d%% %d/%d\n" \
|
|
||||||
, "intel_backlight" \
|
|
||||||
, actual_brightness / max_brightness * 100 \
|
|
||||||
, actual_brightness \
|
|
||||||
, max_brightness
|
|
||||||
}
|
|
||||||
'
|
|
||||||
'';
|
|
||||||
|
|
||||||
q-power_supply =
|
|
||||||
let
|
|
||||||
power_supply = pkgs.writers.writeBash "power_supply" ''
|
|
||||||
set -efu
|
|
||||||
uevent=$1
|
|
||||||
eval "$(${pkgs.gnused}/bin/sed -n '
|
|
||||||
s/^\([A-Z_]\+=[0-9A-Za-z_-]*\)$/export \1/p
|
|
||||||
' $uevent)"
|
|
||||||
case $POWER_SUPPLY_NAME in
|
|
||||||
AC)
|
|
||||||
exit # not battery
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
exec </dev/null
|
|
||||||
exec ${pkgs.gawk}/bin/awk '
|
|
||||||
function die(s) {
|
|
||||||
printf "%20s │ %s\n", name, s
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function print_hm(h, m) {
|
|
||||||
m = (h - int(h)) * 60
|
|
||||||
return sprintf("%dh%dm", h, m)
|
|
||||||
}
|
|
||||||
|
|
||||||
function print_bar(bar_size, charge, full_bars, empty_bars, full_color) {
|
|
||||||
full_bars = int(charge * bar_size)
|
|
||||||
empty_bars = bar_size - full_bars
|
|
||||||
|
|
||||||
if (charge >= .42) full_color = "2"
|
|
||||||
else if (charge >= .23) full_color = "3"
|
|
||||||
else full_color = "1"
|
|
||||||
|
|
||||||
left_arrow = 1
|
|
||||||
middle_arrow = 1
|
|
||||||
right_arrow = 1
|
|
||||||
if (full_bars == 0) {
|
|
||||||
left_arrow = 0
|
|
||||||
middle_arrow = 0
|
|
||||||
}
|
|
||||||
if (empty_bars == 0) {
|
|
||||||
middle_arrow = 0
|
|
||||||
right_arrow = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
empty_color = "0";
|
|
||||||
return sgr("38;5;" 8) sgr("48;5;" full_color) strdup("",left_arrow) strdup(" ", full_bars) sgr("48;5;" empty_color) sgr("38;5;" full_color) strdup("",middle_arrow) strdup(" ", empty_bars) sgr() sgr("38;5;" empty_color) strdup("",right_arrow) sgr()
|
|
||||||
}
|
|
||||||
|
|
||||||
function sgr(p) {
|
|
||||||
return "\x1b[" p "m"
|
|
||||||
}
|
|
||||||
|
|
||||||
function strdup(s,n,t) {
|
|
||||||
t = sprintf("%"n"s","")
|
|
||||||
gsub(/ /,s,t)
|
|
||||||
return t
|
|
||||||
}
|
|
||||||
|
|
||||||
END {
|
|
||||||
name = ENVIRON["POWER_SUPPLY_NAME"]
|
|
||||||
|
|
||||||
charge_unit = "Ah"
|
|
||||||
charge_now = ENVIRON["POWER_SUPPLY_CHARGE_NOW"] / 10^6
|
|
||||||
charge_full = ENVIRON["POWER_SUPPLY_CHARGE_FULL"] / 10^6
|
|
||||||
|
|
||||||
current_unit = "A"
|
|
||||||
current_now = ENVIRON["POWER_SUPPLY_CURRENT_NOW"] / 10^6
|
|
||||||
|
|
||||||
energy_unit = "Wh"
|
|
||||||
energy_now = ENVIRON["POWER_SUPPLY_ENERGY_NOW"] / 10^6
|
|
||||||
energy_full = ENVIRON["POWER_SUPPLY_ENERGY_FULL"] / 10^6
|
|
||||||
|
|
||||||
power_unit = "W"
|
|
||||||
power_now = ENVIRON["POWER_SUPPLY_POWER_NOW"] / 10^6
|
|
||||||
|
|
||||||
voltage_unit = "V"
|
|
||||||
voltage_now = ENVIRON["POWER_SUPPLY_VOLTAGE_NOW"] / 10^6
|
|
||||||
voltage_min_design = ENVIRON["POWER_SUPPLY_VOLTAGE_MIN_DESIGN"] / 10^6
|
|
||||||
|
|
||||||
#printf "charge_now: %s\n", charge_now
|
|
||||||
#printf "charge_full: %s\n", charge_full
|
|
||||||
#printf "current_now: %s\n", current_now
|
|
||||||
#printf "energy_now: %s\n", energy_now
|
|
||||||
#printf "energy_full: %s\n", energy_full
|
|
||||||
#printf "energy_full: %s\n", ENVIRON["POWER_SUPPLY_ENERGY_FULL"]
|
|
||||||
#printf "energy_full: %s\n", ENVIRON["POWER_SUPPLY_ENERGY_FULL"] / 10^6
|
|
||||||
#printf "power_now: %s\n", power_now
|
|
||||||
#printf "voltage_now: %s\n", voltage_now
|
|
||||||
|
|
||||||
if (current_now == 0 && voltage_now != 0) {
|
|
||||||
current_now = power_now / voltage_now
|
|
||||||
}
|
|
||||||
if (power_now == 0) {
|
|
||||||
power_now = current_now * voltage_now
|
|
||||||
}
|
|
||||||
if (charge_now == 0 && voltage_min_design != 0) {
|
|
||||||
charge_now = energy_now / voltage_min_design
|
|
||||||
}
|
|
||||||
if (energy_now == 0) {
|
|
||||||
energy_now = charge_now * voltage_min_design
|
|
||||||
}
|
|
||||||
if (charge_full == 0 && voltage_min_design != 0) {
|
|
||||||
charge_full = energy_full / voltage_min_design
|
|
||||||
}
|
|
||||||
if (energy_full == 0) {
|
|
||||||
energy_full = charge_full * voltage_min_design
|
|
||||||
}
|
|
||||||
|
|
||||||
if (charge_now == 0 || charge_full == 0) {
|
|
||||||
die("unknown charge")
|
|
||||||
}
|
|
||||||
|
|
||||||
charge_ratio = charge_now / charge_full
|
|
||||||
|
|
||||||
out = out sprintf("%20s │", name)
|
|
||||||
out = out sprintf(" %s", print_bar(10, charge_ratio))
|
|
||||||
out = out sprintf(" %d%", charge_ratio * 100)
|
|
||||||
out = out sprintf(" %.2f%s", charge_now, charge_unit)
|
|
||||||
if (current_now != 0) {
|
|
||||||
out = out sprintf("/%.1f%s", current_now, current_unit)
|
|
||||||
}
|
|
||||||
out = out sprintf(" %d%s", energy_full, energy_unit)
|
|
||||||
if (power_now != 0) {
|
|
||||||
out = out sprintf("/%.1f%s", power_now, power_unit)
|
|
||||||
}
|
|
||||||
if (current_now != 0) {
|
|
||||||
out = out sprintf(" %s", print_hm(charge_now / current_now))
|
|
||||||
}
|
|
||||||
|
|
||||||
print out
|
|
||||||
}
|
|
||||||
'
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
''
|
|
||||||
for uevent in /sys/class/power_supply/*/uevent; do
|
|
||||||
${power_supply} "$uevent" || :
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
q-virtualization = ''
|
|
||||||
printf '%20s │ %s\n' "VT" \
|
|
||||||
$(${pkgs.systemd}/bin/systemd-detect-virt)
|
|
||||||
'';
|
|
||||||
|
|
||||||
q-wireless = ''
|
|
||||||
for dev in $(
|
|
||||||
${pkgs.iw}/bin/iw dev \
|
|
||||||
| ${pkgs.gnused}/bin/sed -n 's/^\s*Interface\s\+\([0-9a-z]\+\)$/\1/p'
|
|
||||||
); do
|
|
||||||
inet=$(${pkgs.iproute}/bin/ip addr show $dev \
|
|
||||||
| ${pkgs.gnused}/bin/sed -n '
|
|
||||||
s/.*inet \([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/p
|
|
||||||
') \
|
|
||||||
|| unset inet
|
|
||||||
ssid=$(${pkgs.iw}/bin/iw dev $dev link \
|
|
||||||
| ${pkgs.gnused}/bin/sed -n '
|
|
||||||
s/.*\tSSID: \(.*\)/\1/p
|
|
||||||
') \
|
|
||||||
|| unset ssid
|
|
||||||
printf '%20s │ %s %s\n' $dev ''${inet+ $inet} ''${ssid+ $ssid}
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
q-online = ''
|
|
||||||
if ${pkgs.curl}/bin/curl -s google.com >/dev/null; then
|
|
||||||
echo ' status │ [32;1monline[m'
|
|
||||||
else
|
|
||||||
echo ' status │ offline '
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
q-thermal_zone = ''
|
|
||||||
for i in /sys/class/thermal/thermal_zone*; do
|
|
||||||
type=$(${pkgs.coreutils}/bin/cat $i/type)
|
|
||||||
temp=$(${pkgs.coreutils}/bin/cat $i/temp)
|
|
||||||
printf '%20s │ %s°C\n' $type $(echo $temp / 1000 | ${pkgs.bc}/bin/bc)
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
q-show-users = ''
|
|
||||||
${pkgs.procps}/bin/ps -eo user \
|
|
||||||
| ${pkgs.gnused}/bin/sed '1 d' \
|
|
||||||
| ${pkgs.coreutils}/bin/sort \
|
|
||||||
| ${pkgs.coreutils}/bin/uniq \
|
|
||||||
| ${pkgs.gnugrep}/bin/egrep --color=always '(${
|
|
||||||
lib.concatStringsSep "|" userHighlight
|
|
||||||
})|$' \
|
|
||||||
| ${pkgs.utillinux}/bin/column
|
|
||||||
'';
|
|
||||||
|
|
||||||
q-task-checklist = ''
|
|
||||||
${pkgs.taskwarrior}/bin/task export +checklist status:pending +READY | \
|
|
||||||
${pkgs.jq}/bin/jq \
|
|
||||||
--raw-output '
|
|
||||||
sort_by(.description) | reverse |
|
|
||||||
.[] |
|
|
||||||
"[ \( .id ) ] \( .description )"
|
|
||||||
'
|
|
||||||
'';
|
|
||||||
|
|
||||||
q-task-active = ''
|
|
||||||
${pkgs.taskwarrior}/bin/task export \
|
|
||||||
+ACTIVE status:pending \
|
|
||||||
| ${pkgs.jq}/bin/jq --raw-output '.[] | "⇒ \(.id) \(.description)"'
|
|
||||||
'';
|
|
||||||
|
|
||||||
# bash needed for <(...)
|
|
||||||
in
|
|
||||||
pkgs.writers.writeBashBin "q" ''
|
|
||||||
set -eu
|
|
||||||
export PATH=/var/empty
|
|
||||||
${hrule}
|
|
||||||
${q-cal}
|
|
||||||
${hrule}
|
|
||||||
${q-timeZoneDates}
|
|
||||||
${hrule}
|
|
||||||
${lib.optionalString enableIntelBacklight "(${q-intel_backlight}) &"}
|
|
||||||
${lib.optionalString enableBattery "(${q-power_supply}) &"}
|
|
||||||
(${q-virtualization}) &
|
|
||||||
(${q-wireless}) &
|
|
||||||
(${q-online}) &
|
|
||||||
(${q-thermal_zone}) & wait
|
|
||||||
${hrule}
|
|
||||||
${q-task-active}
|
|
||||||
${hrule}
|
|
||||||
${q-task-checklist}
|
|
||||||
${hrule}
|
|
||||||
${q-show-users}
|
|
||||||
''
|
|
|
@ -1,27 +0,0 @@
|
||||||
{ rustPlatform, fetchgit, lib, ... }:
|
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
|
||||||
name = "terminal-tools-${version}";
|
|
||||||
version = "0.1.0";
|
|
||||||
|
|
||||||
#src = ./.;
|
|
||||||
src = fetchgit {
|
|
||||||
url = "https://git.ingolf-wagner.de/palo/terminal-tools";
|
|
||||||
rev = "816cfd8eae8f8136437e4076116e0267c6a6eb0d";
|
|
||||||
sha256 = "07zf716wy0rqpzwj580haw935lj5ih0wzhfn26dq83kf9nm09iyg";
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
cargoSha256 = "0dgbw6idlzzpgljv0lxavimh1h8qlib0qrcn92f5imy6a12phrmm";
|
|
||||||
|
|
||||||
verifyCargoDeps = true;
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "tools I use in my shell scripts which should be fast";
|
|
||||||
homepage = "https://git.ingolf-wagner.de/palo/terminal-tools";
|
|
||||||
license = licenses.gpl3;
|
|
||||||
maintainers = [ maintainers.mrVanDalo ];
|
|
||||||
platforms = platforms.all;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue