chore(users): remove inactive users

Change-Id: I3cfb425e4dac0a467e3917df996e9800a3ebe875
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9576
Reviewed-by: isomer <isomer@tvl.fyi>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
This commit is contained in:
Vincent Ambo 2023-10-08 19:31:58 +03:00 committed by clbot
parent 8b2884de09
commit 5f32f7610a
26 changed files with 0 additions and 450 deletions

View file

@ -67,21 +67,6 @@
extraGroups = [ "git" "wheel" ]; extraGroups = [ "git" "wheel" ];
openssh.authorizedKeys.keys = depot.users.flokli.keys.all; openssh.authorizedKeys.keys = depot.users.flokli.keys.all;
}; };
# Temporarily disabled (inactive) users.
users.isomer = {
isNormalUser = true;
extraGroups = [ "git" ];
shell = "${pkgs.shadow}/bin/nologin";
openssh.authorizedKeys.keys = depot.users.isomer.keys.all;
};
users.riking = {
isNormalUser = true;
extraGroups = [ "git" ];
shell = "${pkgs.shadow}/bin/nologin";
openssh.authorizedKeys.keys = depot.users.riking.keys.u2f ++ depot.users.riking.keys.passworded;
};
}; };
programs.fish.enable = true; programs.fish.enable = true;

View file

@ -1,3 +0,0 @@
set noparent
isomer

View file

@ -1,7 +0,0 @@
# SSH public keys
{ ... }:
rec {
perry = "cert-authority,principals=perry ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXWKN+FXlQAQ36R4+FHJ9f15Tz/48xLK1f85Yf9eBrvJJVMn6ge3Cy8AJ2nymBtVvCC86q616yl4Mn+CrKBH/vHr4jY9nxJ7HHgKI8ERr+7KpLIAiiaeIBljWwCy918lK3MijRCuj0P0d3v8CEFJjyCsiyglDVcNhsW87VqqZE6lUg4Alw1CGAmNjamxdoIZxjZAM9vJtZrlYnUiu+X7vTl5ttTaZkLCCfu+/bJAKFBWPG5BPaNjjfGVuTKqEc4plkI3JeZBu3Or3LzlYxcvp71i+eKGJ8F/nMBlo25iQsQpi8ZS7JYAhj3mYVrstw7j+nkgbordvDOK5NbDMi6GzX";
all = [ perry ];
}

View file

@ -1 +0,0 @@
riking

View file

@ -1,2 +0,0 @@
*/target
*/input.txt

View file

@ -1,14 +0,0 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "anyhow"
version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf8dcb5b4bbaa28653b647d8c77bd4ed40183b48882e130c1f1ffb73de069fd7"
[[package]]
name = "day01"
version = "0.1.0"
dependencies = [
"anyhow",
]

View file

@ -1,10 +0,0 @@
[package]
name = "day01"
version = "0.1.0"
authors = ["Kane York <kanepyork@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0.34"

View file

@ -1,10 +0,0 @@
{ depot, ... }:
with depot.third_party;
naersk.buildPackage {
src = ./.;
buildInputs = [ ];
doCheck = true;
}

View file

@ -1,85 +0,0 @@
use anyhow::anyhow;
use std::fs::File;
use std::io::prelude::*;
use std::io::BufReader;
const PART_2: bool = true;
fn day01(is_part2: bool, numbers: &Vec<i64>) -> Result<String, anyhow::Error> {
// println!("{:?}", numbers);
for n1 in numbers.iter() {
for n2 in numbers.iter() {
if is_part2 {
for n3 in numbers.iter() {
if n1 + n2 + n3 == 2020 {
return Ok((n1 * n2 * n3).to_string());
}
}
} else {
if n1 + n2 == 2020 {
return Ok((n1 * n2).to_string());
}
}
}
}
Err(anyhow!("no solution found"))
}
fn parse(filename: &str) -> Result<Vec<i64>, anyhow::Error> {
let f = File::open(filename)?;
let mut reader = BufReader::new(f);
let mut values = Vec::<i64>::new();
let mut line = String::new();
loop {
line.clear();
reader.read_line(&mut line)?;
let trimmed_line = line.trim();
if trimmed_line.is_empty() {
break;
}
values.push(trimmed_line.parse()?);
}
Ok(values)
}
fn main() -> anyhow::Result<()> {
let args: Vec<String> = std::env::args().collect();
// println!("{:?}", args);
if args.len() != 2 {
return Err(anyhow!("usage: day01 input_file"));
}
let filename = args.into_iter().skip(1).next().expect("args len == 1");
let numbers = parse(&filename)?;
println!("{}", day01(PART_2, &numbers)?);
Ok(())
}
#[cfg(test)]
mod tests {
use super::day01;
#[test]
fn test_part1() {
let vec = vec![1721, 979, 366, 299, 675, 1456];
let result = day01(false, &vec).unwrap();
assert_eq!(result, 514579.to_string());
}
#[test]
fn test_part2() {
let vec = vec![1721, 979, 366, 299, 675, 1456];
let result = day01(true, &vec).unwrap();
assert_eq!(result, 241861950.to_string());
}
}

View file

@ -1,53 +0,0 @@
# BEGIN: __USER_FUNCTIONS__
function gh-clone() {
if [[ "x$2" == "x" ]]; then
IFS='/' read -ra PARTS <<< "$1"
user="${PARTS[0]}"
repo="${PARTS[1]}"
else
user="$1"
repo="$2"
fi
if [[ -d ~/go/src/github.com/"$user"/"$repo" ]]; then
cd ~/go/src/github.com/"${user}"/"${repo}"
return 0
fi
mkdir -p ~/go/src/github.com/"${user}"
cd ~/go/src/github.com/"${user}"
git clone git@github.com:"${user}"/"${repo}".git
cd ~/go/src/github.com/"${user}"/"${repo}"
}
function download() {
cd "${HOME}/Downloads"
wget "$@"
}
# todo: only one password pls
function prodaccess() {
(ssh-add -L | grep -q 'ZgEu6S3SLatYN') || ssh-add "$HOME"/.ssh/id_ed25519
(ssh-add -L | grep -q 'Gfh2S3kUwZ8A6') || ssh-add "$HOME"/.ssh/id_rsa.discourse
echo "signing test" | gpg --clearsign > /dev/null
}
function reset-audio() {
pulseaudio -k && sudo alsa force-reload
}
function tvl-push() {
git push origin HEAD:refs/for/canon
}
# END: __USER_FUNCTIONS__
# BEGIN: __USER_ENV__
GOPATH=$HOME/go
CDPATH=$HOME/go/src
export GPG_TTY="$(tty)"
export PATH="/usr/local/go/bin:$HOME/go/bin:$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
# END: __USER_ENV__

View file

@ -1,141 +0,0 @@
# SPDX-License-Identifier: Unlicense
# https://raw.githubusercontent.com/lilyball/nix-env.fish/master/conf.d/nix-env.fish
# Setup Nix
# We need to distinguish between single-user and multi-user installs.
# This is difficult because there's no official way to do this.
# We could look for the presence of /nix/var/nix/daemon-socket/socket but this will fail if the
# daemon hasn't started yet. /nix/var/nix/daemon-socket will exist if the daemon has ever run, but
# I don't think there's any protection against accidentally running `nix-daemon` as a user.
# We also can't just look for /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh because
# older single-user installs used the default profile instead of a per-user profile.
# We can still check for it first, because all multi-user installs should have it, and so if it's
# not present that's a pretty big indicator that this is a single-user install. If it does exist,
# we still need to verify the install type. To that end we'll look for a root owner and sticky bit
# on /nix/store. Multi-user installs set both, single-user installs don't. It's certainly possible
# someone could do a single-user install as root and then manually set the sticky bit but that
# would be extremely unusual.
set -l nix_profile_path /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
set -l single_user_profile_path ~/.nix-profile/etc/profile.d/nix.sh
if test -e $nix_profile_path
# The path exists. Double-check that this is a multi-user install.
# We can't just check for ~/.nix-profile/… because this may be a single-user install running as
# the wrong user.
# stat is not portable. Splitting the output of ls -nd is reliable on most platforms.
set -l owner (string split -n ' ' (ls -nd /nix/store 2>/dev/null))[3]
if not test -k /nix/store -a $owner -eq 0
# /nix/store is either not owned by root or not sticky. Assume single-user.
set nix_profile_path $single_user_profile_path
end
else
# The path doesn't exist. Assume single-user
set nix_profile_path $single_user_profile_path
end
if test -e $nix_profile_path
# Source the nix setup script
# We're going to run the regular Nix profile under bash and then print out a few variables
for line in (env -u BASH_ENV bash -c '. "$0"; for name in PATH "${!NIX_@}"; do printf "%s=%s\0" "$name" "${!name}"; done' $nix_profile_path | string split0)
set -xg (string split -m 1 = $line)
end
# Insert Nix's fish share directories into fish's special variables.
# nixpkgs-installed fish tries to set these up already if NIX_PROFILES is defined, which won't
# be the case when sourcing $__fish_data_dir/share/config.fish normally, but might be for a
# recursive invocation. To guard against that, we'll only insert paths that don't already exit.
# Furthermore, for the vendor_conf.d sourcing, we'll use the pre-existing presence of a path in
# $fish_function_path to determine whether we want to source the relevant vendor_conf.d folder.
# To start, let's locally define NIX_PROFILES if it doesn't already exist.
set -al NIX_PROFILES
if test (count $NIX_PROFILES) -eq 0
set -a NIX_PROFILES $HOME/.nix-profile
end
# Replicate the logic from nixpkgs version of $__fish_data_dir/__fish_build_paths.fish.
set -l __nix_profile_paths (string split ' ' -- $NIX_PROFILES)[-1..1]
set -l __extra_completionsdir \
$__nix_profile_paths/etc/fish/completions \
$__nix_profile_paths/share/fish/vendor_completions.d
set -l __extra_functionsdir \
$__nix_profile_paths/etc/fish/functions \
$__nix_profile_paths/share/fish/vendor_functions.d
set -l __extra_confdir \
$__nix_profile_paths/etc/fish/conf.d \
$__nix_profile_paths/share/fish/vendor_conf.d \
### Configure fish_function_path ###
# Remove any of our extra paths that may already exist.
# Record the equivalent __extra_confdir path for any function path that exists.
set -l existing_conf_paths
for path in $__extra_functionsdir
if set -l idx (contains --index -- $path $fish_function_path)
set -e fish_function_path[$idx]
set -a existing_conf_paths $__extra_confdir[(contains --index -- $path $__extra_functionsdir)]
end
end
# Insert the paths before $__fish_data_dir.
if set -l idx (contains --index -- $__fish_data_dir/functions $fish_function_path)
# Fish has no way to simply insert into the middle of an array.
set -l new_path $fish_function_path[1..$idx]
set -e new_path[$idx]
set -a new_path $__extra_functionsdir
set fish_function_path $new_path $fish_function_path[$idx..-1]
else
set -a fish_function_path $__extra_functionsdir
end
### Configure fish_complete_path ###
# Remove any of our extra paths that may already exist.
for path in $__extra_completionsdir
if set -l idx (contains --index -- $path $fish_complete_path)
set -e fish_complete_path[$idx]
end
end
# Insert the paths before $__fish_data_dir.
if set -l idx (contains --index -- $__fish_data_dir/completions $fish_complete_path)
set -l new_path $fish_complete_path[1..$idx]
set -e new_path[$idx]
set -a new_path $__extra_completionsdir
set fish_complete_path $new_path $fish_complete_path[$idx..-1]
else
set -a fish_complete_path $__extra_completionsdir
end
### Source conf directories ###
# The built-in directories were already sourced during shell initialization.
# Any __extra_confdir that came from $__fish_data_dir/__fish_build_paths.fish was also sourced.
# As explained above, we're using the presence of pre-existing paths in $fish_function_path as a
# signal that the corresponding conf dir has also already been sourced.
# In order to simulate this, we'll run through the same algorithm as found in
# $__fish_data_dir/config.fish except we'll avoid sourcing the file if it comes from an
# already-sourced location.
# Caveats:
# * Files will be sourced in a different order than we'd ideally do (because we're coming in
# after the fact to source them).
# * If there are existing extra conf paths, files in them may have been sourced that should have
# been suppressed by paths we're inserting in front.
# * Similarly any files in $__fish_data_dir/vendor_conf.d that should have been suppressed won't
# have been.
set -l sourcelist
for file in $__fish_config_dir/conf.d/*.fish $__fish_sysconf_dir/conf.d/*.fish
# We know these paths were sourced already. Just record them.
set -l basename (string replace -r '^.*/' '' -- $file)
contains -- $basename $sourcelist
or set -a sourcelist $basename
end
for root in $__extra_confdir
for file in $root/*.fish
set -l basename (string replace -r '^.*/' '' -- $file)
contains -- $basename $sourcelist
and continue
set -a sourcelist $basename
contains -- $root $existing_conf_paths
and continue # this is a pre-existing path, it will have been sourced already
[ -f $file -a -r $file ]
and source $file
end
end
end

View file

@ -1,8 +0,0 @@
set -gx GOPATH "$HOME/go"
set -gx GPG_TTY (tty)
set -gx DEPOT_ROOT "$GOPATH/src/code.tvl.fyi"
set -gx PATH '/usr/local/go/bin' "$HOME/.cargo/bin" "$HOME/.rbenv/bin" $PATH
status --is-interactive; and rbenv init - | source
source ~/.opsrc.fish # work
set -gx PATH "$HOME/go/bin" $PATH

View file

@ -1,32 +0,0 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3100
SETUVAR fish_color_autosuggestion:555\x1ebrblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:005fd7
SETUVAR fish_color_comment:990000
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:009900
SETUVAR fish_color_error:ff0000
SETUVAR fish_color_escape:00a6b2
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:00a6b2
SETUVAR fish_color_param:00afff
SETUVAR fish_color_quote:999900
SETUVAR fish_color_redirection:00afff
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell\x0aType\x20\x60help\x60\x20for\x20instructions\x20on\x20how\x20to\x20use\x20fish
SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_completion:\x1d
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan

View file

@ -1,3 +0,0 @@
function ddate --description 'current date in Discourse format'
TZ=UTC date '+[date=%Y-%m-%d time=%H:%M:%S timezone=\"%Z\"]'
end

View file

@ -1,18 +0,0 @@
function gh-clone --description 'Clone and CD to a github repository'
if test (count $argv) -eq 1
set user (string split "/" -- $argv[1])[1]
set repo (string split "/" -- $argv[1])[2]
else
set user $argv[1]
set repo $argv[2]
end
if test -d "$HOME/go/src/github.com/$user/$repo"
cd "$HOME/go/src/github.com/$user/$repo"
return 0
end
mkdir -p "$HOME/go/src/github.com/$user"
cd "$HOME/go/src/github.com/$user"
git clone "git@github.com:$user/$repo.git"
cd "$HOME/go/src/github.com/$user/$repo"
end

View file

@ -1,6 +0,0 @@
function prodaccess
ssh-add "$HOME/.ssh/id_ecdsa_sk"
begin; ssh-add -L | grep -q 'ZgEu6S3SLatYN'; end || ssh-add "$HOME"/.ssh/id_ed25519
begin; ssh-add -L | grep -q 'Gfh2S3kUwZ8A6'; end || ssh-add "$HOME"/.ssh/id_rsa.discourse
echo "signing test" | gpg --clearsign > /dev/null
end

View file

@ -1,4 +0,0 @@
function reset-audio --description "Resets pulse and alsa"
pulseaudio -k
sudo alsa force-reload
end

View file

@ -1,3 +0,0 @@
function tvl-push
git push origin HEAD:refs/for/canon
end

View file

@ -1,5 +0,0 @@
#include "/etc/regolith/styles/ubuntu/root"
i3-wm.program.lock: xset s activate
i3-wm.program.1: /bin/sh $HOME/.config/regolith/initrc

View file

@ -1 +0,0 @@
ec33ee15ff705ac4b167ba6b7f6df3c2

View file

@ -1,3 +0,0 @@
xset s 900 5
( xss-lock -n /usr/lib/xsecurelock/dimmer -l -- sh -c "XSECURELOCK_PASSWORD_PROMPT=time_hex XSECURELOCK_SHOW_DATETIME=1 XSECURELOCK_SAVER=saver_mpv XSECURELOCK_IMAGE_DURATION_SECONDS=10 XSECURELOCK_LIST_VIDEOS_COMMAND='find ~/Videos/Screensaver -type f' xsecurelock" )&

View file

@ -1,6 +0,0 @@
set -g mouse on
set-option -g prefix C-a
bind-key C-a send-prefix
bind | split-window -h
bind - split-window -v

View file

@ -1,20 +0,0 @@
# SSH public keys
{ ... }:
rec {
sk-ecljg09 = "sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBBwJ7dJJUkvIK+bDsVsCsCZSlbs90aOLsHN7XesC8/AmLA5rIRLO8I5ADoOjsWAXl/WAgxqOMmB4LxZjoXWa1a0AAAAEc3NoOg== riking@sk-ECLJG09";
sk-portable1 = "sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBCfA8/0nKk4jXclWHjRZIuicPeyIo9oDwahpnWjEATr7YaFDAo632KTSgqlW0lpx8lX9alLsJRhFV2XaSurYw/EAAAAEc3NoOg== riking@sk-portable1";
sk-portable2 = "sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBEX3DXreQR93SR68QZHTdaVd5RjlRM8C0jcZ4kI4OZwqk7xuk68w3g22q2OM7O+chj+n1N3u0hLxi82QfRnwyasAAAAEc3NoOg== riking@sk-portable2";
sk-desktop = "sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBB+JvN8nAxD+yo49Ohf/UDq7Z049yvkURJIA1XNbvKaAkvfWnCN5m9vTC1FyGxTyCwy4QpD1pFP5fIn0X/kvvfgAAAAEc3NoOg== riking@sk-kane-DAN-A4";
u2f = [ sk-ecljg09 sk-portable1 sk-portable2 sk-desktop ];
ed1 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAjWIfFH2bAWMZG+HudV1MVHWUl83M/ZgEu6S3SLatYN riking@kane-DAN-A4";
ed2 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICBblB4C9IgAijv+qN6Zs8TM2Sz7phQvVmRrcDn4VYNo riking@ECLJG09";
passworded = [ ed1 ed2 ];
unprotected = [ ];
all = u2f ++ passworded ++ unprotected;
}