Literally megastage everything I forgot to commit within the last year
Signed-off-by: Andrei Jiroh Eugenio Halili <ajhalili2006@gmail.com>
This commit is contained in:
parent
65b5a5fca1
commit
1f3a8f6700
|
@ -20,6 +20,7 @@ jobs:
|
||||||
- 'bootstrap'
|
- 'bootstrap'
|
||||||
- bashrc/**
|
- bashrc/**
|
||||||
- zshrc/**
|
- zshrc/**
|
||||||
|
- tools/**
|
||||||
manual:
|
manual:
|
||||||
- .github/workflows/lint.yml
|
- .github/workflows/lint.yml
|
||||||
- name: ShellCheck
|
- name: ShellCheck
|
||||||
|
|
|
@ -10,7 +10,7 @@ disable-funcs () {
|
||||||
}
|
}
|
||||||
|
|
||||||
edit-funcs-bashrc() {
|
edit-funcs-bashrc() {
|
||||||
$(echo $EDITOR || command -v nano>>/dev/null && echo nano || echo vi) ~/.dotfiles/bashrc/worthwhile-functions
|
$(command -v nano>>/dev/null && echo nano || echo vi) ~/.dotfiles/bashrc/worthwhile-functions
|
||||||
}
|
}
|
||||||
|
|
||||||
list-debs-size() {
|
list-debs-size() {
|
||||||
|
@ -19,7 +19,7 @@ list-debs-size() {
|
||||||
|
|
||||||
edit-script-file() {
|
edit-script-file() {
|
||||||
# if you use other editor, please set $EDITOR.
|
# if you use other editor, please set $EDITOR.
|
||||||
$(echo $EDITOR || command -v code>>/dev/null && echo code || command -v nano>>/dev/null && echo nano || echo vi) "$(command -v $1)"
|
$(command -v code>>/dev/null && echo code || command -v nano>>/dev/null && echo nano || echo vi) "$(command -v $1)"
|
||||||
}
|
}
|
||||||
|
|
||||||
# reloading stuff
|
# reloading stuff
|
||||||
|
@ -34,16 +34,10 @@ refresh-aliases() {
|
||||||
git() {
|
git() {
|
||||||
# check command for some automation KEK, especially i want to do DCO by default
|
# check command for some automation KEK, especially i want to do DCO by default
|
||||||
if [[ "$1" == "init" && "$@" != *"--help"* ]]; then
|
if [[ "$1" == "init" && "$@" != *"--help"* ]]; then
|
||||||
[[ $DEBUG != "" ]] && echo "args: $@" && sleep 3
|
|
||||||
if command git "$@"; then
|
if command git "$@"; then
|
||||||
echo "Setting HEAD to branch main"
|
echo "Setting HEAD to branch main"
|
||||||
command git symbolic-ref HEAD refs/heads/main
|
command git symbolic-ref HEAD refs/heads/main
|
||||||
fi
|
fi
|
||||||
elif [[ "$1" == "commit" && "$@" != *"--help"* && ( "$@" != *"--signoff"* && "$@" != *"-s"* && $@ != *"--amend" ) ]]; then
|
|
||||||
[ $DEBUG != "" ] && echo "args: $@ --signoff" && sleep 3
|
|
||||||
command git "$@" --signoff
|
|
||||||
elif [[ "$1" == "pull" && "$@" != *"--help"* && ( "$@" != *"--signoff"* && "$@" != *"-s"* ) ]]; then
|
|
||||||
command git "$@" --signoff
|
|
||||||
else
|
else
|
||||||
command git "$@"
|
command git "$@"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# Chroot command is optional and assume login binary
|
||||||
|
CHROOT_COMMAND=${2:-"/usr/bin/login"}
|
||||||
|
TARGET_DIR=$1
|
||||||
|
|
||||||
|
if [[ $TARGET_DIR == "" ]]; then
|
||||||
|
echo "Usage: $0 TARGET_DIR [CHROOT_COMMAND]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $EUID != "0" ]; then
|
||||||
|
echo "error: Must be root to proceed!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "===> Mounting required parts for chroot operation..."
|
||||||
|
mount -o bind /dev "$TARGET_DIR/dev"
|
||||||
|
mount -t proc none "$TARGET_DIR/proc"
|
||||||
|
mount -o bind /sys "$TARGET_DIR/sys"
|
||||||
|
echo " Kernel and device mount setup done!"
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
if [[ -f "$TARGET_DIR/setup-chroot-env.sh" ]]; then
|
||||||
|
echo "===> Preparing chroot environment..."
|
||||||
|
if ! bash "$TARGET_DIR/setup-chroot-env.sh"; then
|
||||||
|
echo "! Chroot env setup failed, please proceed at your own risk."
|
||||||
|
else
|
||||||
|
echo " Setup done!"
|
||||||
|
fi
|
||||||
|
sleep 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "===> Teleporting to the chroot environment in 3 seconds..."
|
||||||
|
sleep 3
|
||||||
|
exec chroot "$TARGET_DIR" ${CHROOT_COMMAND}
|
|
@ -60,3 +60,9 @@ Host stellapent.local
|
||||||
User cursed-remote-user
|
User cursed-remote-user
|
||||||
IdentityFile ~/.ssh/launchpad
|
IdentityFile ~/.ssh/launchpad
|
||||||
LocalForward 3380 localhost:3389
|
LocalForward 3380 localhost:3389
|
||||||
|
|
||||||
|
# SourceForge
|
||||||
|
Host sourceforge
|
||||||
|
User ajhalili2006
|
||||||
|
Hostname shell.sourceforge.net
|
||||||
|
IdentityFile ~/.ssh/launchpad
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Toolkit for different aspects
|
||||||
|
|
||||||
|
* `setup-scripts` - Post-install scripts for Arch and Alpine, assuming that `/home` is an separate partition.
|
||||||
|
* `rtapp-spfx-`
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "===> Updating local index..."
|
||||||
|
apt update
|
||||||
|
echo
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
echo "===> Doing distro upgrade..."
|
||||||
|
apt-get dist-upgrade --yes
|
||||||
|
echo
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
echo "info: Please reboot to proceed by typing /sbin/reboot!"
|
|
@ -0,0 +1,287 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# coding: utf8
|
||||||
|
#
|
||||||
|
## Idempotently add copyright headers to source files.
|
||||||
|
#
|
||||||
|
# To check that all files have required headers:
|
||||||
|
# $ copyright-headers check
|
||||||
|
#
|
||||||
|
# To add/update the copyright headers:
|
||||||
|
# $ copyright-headers update
|
||||||
|
#
|
||||||
|
# To ignore files under a certain directory and below:
|
||||||
|
# $ touch some/directory/.autocopyrightignore
|
||||||
|
# $ git add some/directory/.autocopyrightignore
|
||||||
|
# Originally from https://github.com/ghuntley/ghuntley/blob/trunk/third_party/copyright-headers/copyright-headers.
|
||||||
|
# SPDX-License
|
||||||
|
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import string
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
#########################
|
||||||
|
# File-type configuration
|
||||||
|
# start: The start marker of the block.
|
||||||
|
# line: The prefix for the notice text.
|
||||||
|
# end: The end marker of the block.
|
||||||
|
# skip: Optional prefix for lines to skip when adding header initially.
|
||||||
|
|
||||||
|
filetypes = \
|
||||||
|
{ 'hs' : { 'start' : '-' * 80 , 'line' : '--' , 'end' : '' , 'empty_line' : '', 'skip' : '#!' } ,
|
||||||
|
'lhs' : { 'start' : '-' * 80 , 'line' : '--' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'chs' : { 'start' : '-' * 80 , 'line' : '--' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'js' : { 'start' : '' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'ts' : { 'start' : '' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'tsx' : { 'start' : '' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'java' : { 'start' : '' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'scala' : { 'start' : '' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'rst' : { 'start' : '' , 'line' : '..' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'tex' : { 'start' : '%' * 80 , 'line' : '%' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'py' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '', 'skip' : '#!' } ,
|
||||||
|
'proto' : { 'start' : '/*' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'c' : { 'start' : '/*' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'cpp' : { 'start' : '/*' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'cc' : { 'start' : '/*' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'h' : { 'start' : '/*' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'hpp' : { 'start' : '/*' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'hh' : { 'start' : '/*' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'groovy' : { 'start' : '/*' , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'sql' : { 'start' : '/*' , 'line' : '--' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'sh' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '', 'skip' : '#!' } ,
|
||||||
|
'bats' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '', 'skip' : '#!' } ,
|
||||||
|
'html' : { 'start' : '<!--' , 'line' : '' , 'end' : '-->' , 'skip' : '<!' } ,
|
||||||
|
'bat' : { 'start' : '::' , 'line' : '::' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'cmd' : { 'start' : '::' , 'line' : '::' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'bazel' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '', 'skip': '#!' } ,
|
||||||
|
'bzl' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '', 'skip': '#!' } ,
|
||||||
|
'rb' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'tf' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'css' : { 'start' : '/*' , 'line' : '' , 'end' : ' */' } ,
|
||||||
|
'scss' : { 'start' : '/*' , 'line' : '' , 'end' : ' */' } ,
|
||||||
|
'yml' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'yaml' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'nix' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'conf' : { 'start' : '#' * 80 , 'line' : '#' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'patch' : { 'start' : '@' * 80 , 'line' : '@' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
'cs' : { 'start' : '//' * 80 , 'line' : '//' , 'end' : '' , 'empty_line' : '' } ,
|
||||||
|
}
|
||||||
|
|
||||||
|
#########################
|
||||||
|
|
||||||
|
# Switch the current working directory to the root of the repository.
|
||||||
|
def chdir_to_toplevel():
|
||||||
|
toplevel = subprocess \
|
||||||
|
.check_output(["git", "rev-parse", "--show-toplevel"], universal_newlines=True) \
|
||||||
|
.strip()
|
||||||
|
os.chdir(toplevel)
|
||||||
|
|
||||||
|
# Find all files from the provided directory (defaults to '.')
|
||||||
|
# using git ls-files, ignoring all prefixes specified in the root
|
||||||
|
# .copyright-ignore file.
|
||||||
|
def list_files(dir):
|
||||||
|
if dir is None:
|
||||||
|
dir = "."
|
||||||
|
|
||||||
|
all_files = subprocess \
|
||||||
|
.check_output(["git", "ls-files", dir], universal_newlines=True) \
|
||||||
|
.strip() \
|
||||||
|
.split("\n")
|
||||||
|
|
||||||
|
# Find all '.autocopyrightignore' paths
|
||||||
|
ignores = [ os.path.dirname(f) + "/" for f in all_files
|
||||||
|
if os.path.basename(f) == '.autocopyrightignore' ]
|
||||||
|
|
||||||
|
# Filter out files under directories that contained
|
||||||
|
# .autocopyrightignore.
|
||||||
|
unignored = [ f for f in all_files
|
||||||
|
if not any(map(lambda x: f.startswith(x), ignores)) ]
|
||||||
|
|
||||||
|
# Filter out symlinks
|
||||||
|
return [ f for f in unignored if not os.path.islink(f) ]
|
||||||
|
|
||||||
|
def process_file(filename, check_only):
|
||||||
|
(_, ext) = os.path.splitext(filename)
|
||||||
|
ext = ext[1:]
|
||||||
|
if ext not in filetypes:
|
||||||
|
#print "skipping %s" % filename
|
||||||
|
return True
|
||||||
|
|
||||||
|
start_mark = filetypes[ext]['start'] + "\n"
|
||||||
|
line_mark = filetypes[ext]['line']
|
||||||
|
# filetypes[ext]['start'] + ' ' + line + ' ' + filetypes[ext]['end']
|
||||||
|
empty_line_mark = filetypes[ext].get('empty_line', line_mark)
|
||||||
|
end_mark = filetypes[ext]['end'] + "\n"
|
||||||
|
|
||||||
|
def comment(line):
|
||||||
|
if line == '':
|
||||||
|
return empty_line_mark
|
||||||
|
else:
|
||||||
|
if line_mark == '':
|
||||||
|
return filetypes[ext]['start'] + ' ' + line + ' ' + filetypes[ext]['end']
|
||||||
|
else:
|
||||||
|
return line_mark + ' ' + line
|
||||||
|
|
||||||
|
notice_lines = list(map(comment, LEGAL_NOTICES))
|
||||||
|
suffix="\n"
|
||||||
|
header = suffix.join(notice_lines) + "\n"
|
||||||
|
|
||||||
|
# Read all lines from the file
|
||||||
|
with open(filename, 'r', encoding="ISO-8859-1", ) as fp:
|
||||||
|
lines = fp.readlines()
|
||||||
|
# Pretend that the file has extra empty line at the end to handle files,
|
||||||
|
# which consist only of the copyright notice and nothing else.
|
||||||
|
# label: ADD_BLANK_LINE
|
||||||
|
lines.append('\n')
|
||||||
|
|
||||||
|
# Process the file:
|
||||||
|
# If we find an existing copyright header with the same starting line
|
||||||
|
# compare against it. If no copyright header exists or it's different
|
||||||
|
# remove the existing one and prepend the new header to the file.
|
||||||
|
state='start'
|
||||||
|
index=0 # Current index to copyright notice text when comparing
|
||||||
|
before_header=[] # Lines in the file before possible copyright header
|
||||||
|
after_header=[] # Lines in the file after the header
|
||||||
|
for line in lines:
|
||||||
|
# looking for start comment block
|
||||||
|
if state == 'start':
|
||||||
|
if (line.strip(filetypes[ext]['line']).strip(filetypes[ext]['start'])[0:19] == " Copyright (c) 2020"):
|
||||||
|
state='notice'
|
||||||
|
|
||||||
|
if line != notice_lines[0]+"\n":
|
||||||
|
print("{0}: notice text mismatch:\n actual: {1}\n expected: {2}" \
|
||||||
|
.format(filename, line.strip(), notice_lines[index].strip()))
|
||||||
|
state='find_end_and_fail'
|
||||||
|
else:
|
||||||
|
index += 1
|
||||||
|
|
||||||
|
else:
|
||||||
|
before_header.append(line)
|
||||||
|
|
||||||
|
# looking for notice start
|
||||||
|
elif state == 'notice':
|
||||||
|
if (line != notice_lines[1] + "\n"):
|
||||||
|
# not a copyright block, switch back to looking for start
|
||||||
|
state='start'
|
||||||
|
before_header.append(start_mark)
|
||||||
|
before_header.append(line)
|
||||||
|
|
||||||
|
else:
|
||||||
|
# match, found the copyright block, start comparing.
|
||||||
|
index += 1
|
||||||
|
state='compare'
|
||||||
|
|
||||||
|
# comparing notice texts
|
||||||
|
elif state == 'compare':
|
||||||
|
if index == len(notice_lines):
|
||||||
|
if line != end_mark and not line.endswith(end_mark) and line != empty_line_mark + "\n":
|
||||||
|
print(f"end marker invalid: {line} vs {end_mark}")
|
||||||
|
state='fail'
|
||||||
|
else:
|
||||||
|
state='ok'
|
||||||
|
|
||||||
|
elif line != notice_lines[index]+"\n":
|
||||||
|
print("{0}: notice text mismatch:\n actual: {1}\n expected: {2}" \
|
||||||
|
.format(filename, line.strip(), notice_lines[index].strip()))
|
||||||
|
state='find_end_and_fail'
|
||||||
|
|
||||||
|
else:
|
||||||
|
index += 1
|
||||||
|
|
||||||
|
# skip comment lines until end mark and fail
|
||||||
|
elif state == 'find_end_and_fail':
|
||||||
|
if not line.startswith(line_mark) \
|
||||||
|
and not line.startswith(' *') \
|
||||||
|
and not line.startswith(' ') \
|
||||||
|
or line == end_mark\
|
||||||
|
or line.endswith(end_mark)\
|
||||||
|
or line == empty_line_mark + "\n":
|
||||||
|
state = 'fail'
|
||||||
|
|
||||||
|
elif state == 'fail' or state == 'ok':
|
||||||
|
after_header.append(line)
|
||||||
|
|
||||||
|
else:
|
||||||
|
sys.exit("abort: unknown state %s" % state)
|
||||||
|
|
||||||
|
if state == 'ok':
|
||||||
|
#print "%s: ok." % filename
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
if not check_only:
|
||||||
|
print(f"{filename}: copyright header missing or out-of-date, updating.")
|
||||||
|
with open(filename, 'w') as fp:
|
||||||
|
if state == 'fail':
|
||||||
|
# copyright header existed, but was out of date, replace it.
|
||||||
|
fp.write("".join(before_header))
|
||||||
|
fp.write(header)
|
||||||
|
# remove additional blank line added at ADD_BLANK_LINE
|
||||||
|
fp.write("".join(after_header[:-1]))
|
||||||
|
elif 'skip' in filetypes[ext]:
|
||||||
|
# no copyright header, but file type requires skipping lines
|
||||||
|
skip_prefix = filetypes[ext]['skip']
|
||||||
|
# skip lines matching the given prefix
|
||||||
|
index=0
|
||||||
|
while index < len(before_header):
|
||||||
|
line = before_header[index]
|
||||||
|
if line.startswith(skip_prefix):
|
||||||
|
fp.write(line)
|
||||||
|
index += 1
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
fp.write(header + "\n")
|
||||||
|
# write the rest of the file.
|
||||||
|
while index < len(before_header):
|
||||||
|
fp.write(before_header[index])
|
||||||
|
index += 1
|
||||||
|
else:
|
||||||
|
# no copyright header, prepend it.
|
||||||
|
fp.write(header + "\n")
|
||||||
|
fp.write("".join(before_header))
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
if state == 'fail':
|
||||||
|
print(f"{filename}s: copyright header out-of-date")
|
||||||
|
else:
|
||||||
|
print(f"{filename}: copyright header missing")
|
||||||
|
return False
|
||||||
|
|
||||||
|
#########################
|
||||||
|
# Main
|
||||||
|
|
||||||
|
def usage():
|
||||||
|
print("usage: copyright-headers <check|update> [DIRECTORY]")
|
||||||
|
print(" If DIRECTORY is provided, checks only in that directory")
|
||||||
|
print(" Otherwise, checks in 'pkgs'.")
|
||||||
|
print(" Note that the provided directory must be relative to the")
|
||||||
|
print(" root of the git repository.")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
chdir_to_toplevel()
|
||||||
|
with open('.copyrightheader', 'r') as f:
|
||||||
|
LEGAL_NOTICES = list(map(lambda x: x.strip(), f.readlines()))
|
||||||
|
|
||||||
|
if len(sys.argv) != 2 and len(sys.argv) != 3:
|
||||||
|
usage()
|
||||||
|
|
||||||
|
if sys.argv[1] == "update":
|
||||||
|
check_only = False
|
||||||
|
elif sys.argv[1] == "check":
|
||||||
|
check_only = True
|
||||||
|
else:
|
||||||
|
usage()
|
||||||
|
|
||||||
|
dir = None
|
||||||
|
if len(sys.argv) > 2:
|
||||||
|
dir = sys.argv[2]
|
||||||
|
|
||||||
|
failed=False
|
||||||
|
for file in list_files(dir):
|
||||||
|
if not process_file(file, check_only):
|
||||||
|
failed=True
|
||||||
|
|
||||||
|
if failed and check_only:
|
||||||
|
print("\nCopyright header check failed.\nPlease update copyright headers by running 'copyright-headers update'")
|
||||||
|
|
||||||
|
sys.exit(failed)
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
# The script will assume you that you\'re on the edge repository and not on stable (in Debian terms, it's
|
||||||
|
# latest stable version/release) There are some stuff that I didn't include here assuming that your Linux
|
||||||
|
# setup would be separate home directory for ease installation process.
|
||||||
|
|
||||||
|
SCREEN_NAME="Stick Michael"
|
||||||
|
USERNAME="gildedguy"
|
||||||
|
|
||||||
|
# Basics: you should use doas instead in daily admin ops
|
||||||
|
apk add bash zsh git git-lfs github-cli coreutils procps mandoc mandoc-apropos doas
|
||||||
|
# Documentation stuff goes here, because I don't have time
|
||||||
|
apk add bash-doc coreutils-doc git-doc git-lfs-doc man-pages mandoc-doc zsh-doc
|
||||||
|
# shell completions
|
||||||
|
apk add git-bash-completion github-cli-bash-completion github-cli-zsh-completion
|
||||||
|
# development packages
|
||||||
|
apk add python3 python3-doc python3-dev nodejs nodejs-doc py3-pip-bash-completion py3-pip py3-pip-zsh-completion py3-pip-doc
|
||||||
|
|
||||||
|
# setup user and some doas prep
|
||||||
|
#adduser -g "$SCREEN_NAME" $USERNAME
|
||||||
|
#adduser $USERNAME video
|
||||||
|
#adduser $USERNAME audio
|
||||||
|
#adduser $USERNAME wheel
|
||||||
|
echo "permit persist :wheel" >> /etc/doas.conf
|
||||||
|
|
||||||
|
# setup xorg server first
|
||||||
|
setup-xorg-server
|
||||||
|
# xfce basics + KDE Breeze theme stuff
|
||||||
|
apk add xfce4 xfce4-terminal xfce4-screensaver lightdm-gtk-greeter breeze breeze-gtk adwaita-gtk2-theme adwaita-icon-theme elogind polkit-elogind
|
||||||
|
# automounting kek and bloody pulseaudio BS
|
||||||
|
apk add gvfs udisks2 ntfs-3g pulseaudio pulseaudio-alsa alsa-plugins-pulse
|
||||||
|
# TODO: Firefox anyone?
|
|
@ -135,19 +135,19 @@ fi
|
||||||
|
|
||||||
# As long as possible, attempt to setup our GnuPG agent when we're on an SSH session.
|
# As long as possible, attempt to setup our GnuPG agent when we're on an SSH session.
|
||||||
if [[ -n "$SSH_CLIENT" ]] || [[ -n "$SSH_TTY" ]]; then
|
if [[ -n "$SSH_CLIENT" ]] || [[ -n "$SSH_TTY" ]]; then
|
||||||
eval $(keychain --agents gpg,ssh --eval --nogui --noinherit)
|
eval $(keychain --agents gpg,ssh --eval --nogui)
|
||||||
export GPG_TTY=$(tty)
|
export GPG_TTY=$(tty)
|
||||||
else
|
else
|
||||||
# We'll do some checks here btw, Currently I use GNOME and Xfce4 as my desktop environments
|
# We'll do some checks here btw, Currently I use GNOME and Xfce4 as my desktop environments
|
||||||
case $(ps -o comm= -p $PPID) in
|
case $(ps -o comm= -p $PPID) in
|
||||||
# Sometimes, $SSH_CLIENT and/or $SSH_TTY doesn't exists so we'll pull what ps says
|
# Sometimes, $SSH_CLIENT and/or $SSH_TTY doesn't exists so we'll pull what ps says
|
||||||
sshd | */sshd) eval $(keychain --agents gpg,ssh --eval --nogui --noinherit);;
|
sshd | */sshd) eval $(keychain --agents gpg,ssh --eval --nogui);;
|
||||||
xfce*) eval $(keychain --agents gpg,ssh --eval);;
|
xfce*) eval $(keychain --agents gpg,ssh --eval);;
|
||||||
gnome*) eval $(keychain --agents gpg,ssh --eval);;
|
gnome*) eval $(keychain --agents gpg,ssh --eval);;
|
||||||
konsole*) eval $(keychain --agents gpg,ssh --eval);;
|
konsole*) eval $(keychain --agents gpg,ssh --eval);;
|
||||||
# Don't forget VS Code and code-server!
|
# Don't forget VS Code and code-server!
|
||||||
code* | node*) eval $(keychain --agents gpg,ssh --eval);;
|
code* | node*) eval $(keychain --agents gpg,ssh --eval);;
|
||||||
*) eval $(keychain --agents gpg,ssh --eval --nogui --noinherit) ;;
|
*) eval $(keychain --agents gpg,ssh --eval --nogui) ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ export DOCKER_BUILDKIT=1
|
||||||
[ -s "$HOME/.config/envman/load.sh" ] && source "$HOME/.config/envman/load.sh"
|
[ -s "$HOME/.config/envman/load.sh" ] && source "$HOME/.config/envman/load.sh"
|
||||||
|
|
||||||
# direnv
|
# direnv
|
||||||
[ "$(which direnv)" != "" ] && eval "$(direnv hook zsh)"
|
[ "$(command -v direnv)" != "" ] && eval "$(direnv hook zsh)"
|
||||||
|
|
||||||
# Pyenv
|
# Pyenv
|
||||||
export PYENV_ROOT="$HOME/.pyenv"
|
export PYENV_ROOT="$HOME/.pyenv"
|
||||||
|
|
Loading…
Reference in New Issue