Compare commits

...

47 Commits

Author SHA1 Message Date
Petr Nyc
3438d019a9 org-jira config for Emacs 2026-01-17 16:43:32 +01:00
Petr Nyc
108c9cefd7 update 2026-01-16 09:42:02 +01:00
Petr Nyc
766e6808b5 update 2025-12-08 08:57:11 +01:00
Petr Nyc
c84c63b0b8 minor spacemacs changes 2025-11-21 19:34:24 +01:00
Petr Nyc
56a36622c1 before upgrade 2025-11-18 08:57:41 +01:00
Petr Nyc
5715fd5577 periodic check-in 2025-11-11 16:25:03 +01:00
Petr Nyc
25384cbd95 new functions and spacemacs config tweaks 2025-09-25 12:45:09 +02:00
Petr Nyc
0cb372ee42 is_server_up and wait_for_server_to_boot up functions 2025-09-25 09:49:43 +02:00
Petr Nyc
879f3fb0bf changed target for UL gate open 2025-09-23 11:21:52 +02:00
Petr Nyc
9b34237c99 changed dabel to andel - andel keeps old ssh ciphers 2025-09-22 18:42:12 +02:00
Petr Nyc
185d2e20b5 karabiner changes 2025-09-16 21:38:12 +02:00
Petr Nyc
44efe712fe 16.9. before IE layoffs 2025-09-16 18:54:13 +02:00
Petr Nyc
c6e19f8633 2.9 2025-09-02 10:06:29 +02:00
Petr Nyc
f0f6f560c6 25.8. 2025-08-25 12:28:03 +02:00
Petr Nyc
8fc1c62462 add tridactyl config 2025-08-18 18:43:20 +02:00
Petr Nyc
13a20f7783 14.8.2025 2025-08-14 15:12:45 +02:00
Petr Nyc
8064928ba4 1.8.2025 2025-08-01 15:13:10 +02:00
Petr Nyc
7950fdc252 UL scripting changes 2025-06-24 14:09:22 +02:00
Petr Nyc
64d163dc1a UL scripting changes 2025-06-24 09:51:16 +02:00
Petr Nyc
a9a135ca0b ssh config for pnyc-ws 2025-06-09 14:36:53 +02:00
Petr Nyc
405a4637ee 17.5.2025 Saturday 22:41 2025-05-17 22:41:18 +02:00
Petr Nyc
ad8fffcec7 23.4.2025 Wednesday 18:44 2025-04-23 18:44:08 +02:00
Petr Nyc
89369e066d ul11u4 gate open checks for queued RTIs 2025-04-23 13:51:19 +02:00
Petr Nyc
8ab6bd4bff 15.4.2025 Tuesday 01:33 2025-04-15 01:33:02 +02:00
Petr Nyc
1b89c295c3 Merge branch 'main' of git.meinlschmidt.org:jetpac/dotfiles 2025-04-13 12:21:01 +02:00
Petr Nyc
b8ec75febe 13.4.2025 Sunday 11:34 2025-04-13 11:34:32 +02:00
Petr Nyc
d23d3d65ec added deansi helper 2025-03-26 12:36:49 +01:00
Petr Nyc
81f6289374 Doc on installing tmux plugins via script 2025-03-24 08:31:38 +00:00
Petr Nyc
4ab866acef ssh configs 2025-03-07 09:20:02 +01:00
Petr Nyc
a4f14e33c8 Merged changes from linux hosts 2025-02-12 14:01:30 +01:00
Petr Nyc
856bcc9ee9 vim and zsh improvements 2025-02-12 13:58:12 +01:00
Petr Nyc
f13f3c71c7 Solaris Userland CLI utils 2025-02-12 13:54:28 +01:00
Petr Nyc
5f287688d6 added kubectl and helm plugins for oh-my-zsh 2024-11-12 15:32:59 +01:00
Petr Nyc
48dfbaa8ae next 2024-11-08 16:03:51 +01:00
Petr Nyc
43d96a7a3d bootstrap take 2 2024-11-08 15:59:26 +01:00
Petr Nyc
64b1207b53 bootstrap.sh 2024-11-08 15:16:55 +01:00
Petr Nyc
a7111acdc2 path for config 2024-11-08 14:38:12 +01:00
Petr Nyc
d3915d64e3 bootstrap script take 1 2024-11-08 14:30:33 +01:00
Petr Nyc
eb9d882449 14.10.2024 Monday 00:54 2024-10-14 00:54:25 +02:00
Petr Nyc
2aab479968 zsh plugins, tmux tweaks 2024-08-22 09:54:07 +02:00
Petr Nyc
e4af88ee68 alacritty config improvements 2024-08-15 15:11:53 +02:00
Petr Nyc
4670ee5597 Alacritty tmux bindings, pig and time for zsh prompt 2024-07-16 14:48:41 +02:00
Petr Nyc
239e93905a Emacs setup information 2024-06-19 11:13:19 +02:00
Petr Nyc
f1455d03cd Added spacemacs config file 2024-06-19 11:11:53 +02:00
Petr Nyc
b07394fe05 git email set to work email, uncommented hg aliases, vimrc plugin 2024-05-30 11:24:11 +02:00
Petr Nyc
cb9e5e3a95 Added tmux panes synchronization 2024-05-17 14:16:33 +02:00
Petr Nyc
5a7330a62e zsh promp modification 2024-05-01 19:09:40 +02:00
35 changed files with 12354 additions and 62 deletions

View File

@@ -1,28 +1,30 @@
# man 5 alacritty
import = ["~/.config/alacritty/themes/themes/solarized_dark.toml"]
# [font.normal]
# # family = "MesloLGS NF"
# family = "MesloLGS Nerd Font Mono"
#
# list fonts on mac, part of font-config installed by brew
# $ fc-list
# $ fc-list | grep 'family:' | less
[font]
## MesloLGS font
normal.family = "MesloLGS Nerd Font Mono"
bold.family = "MesloLGS Nerd Font Mono"
italic.family = "MesloLGS Nerd Font Mono"
bold_italic.family = "MesloLGS Nerd Font Mono"
size = 18
offset.x = 1
# set apple font smoothing for alacritty:
# defaults write org.alacritty AppleFontSmoothing -int 0
# [window]
# decorations = "none"
# [window.padding]
# x = 5
# y = 3
# window.dynamic_padding = true
# JetBrains Nerd font
# normal.family = "JetBrainsMono NF"
# bold.family = "JetBrainsMono NF SemiBold"
# italic.family = "JetBrainsMono NFM Thin"
# bold_italic.family = "JetBrainsMono NFM"
# size = 18
# offset.x = 1
# offset.y = 0
[window]
dynamic_padding = true
@@ -30,14 +32,66 @@ padding.x = 5
padding.y = 3
dimensions.columns = 89
dimensions.lines = 41
# trick for alt not displaying special characters
# https://github.com/alacritty/alacritty/issues/93#issuecomment-1428462339
option_as_alt = "OnlyLeft"
# decorations = "buttonless"
# decorations = "full"
# decorations = "transparent"
# decorations = "none"
startup_mode = "Windowed"
dynamic_title = true
[scrolling]
history = 20000
[selection]
save_to_clipboard = true
# key bidnings
# use xxd to find unicode codes of key presses
# use cat -v to find escape codes of various key combos
[keyboard]
bindings = [
# tmux bindings
# alt + <number> switches to window <number>
{ key = "1" , mods = "Option", chars = "\u0001\u0031" }, # C-a 1
{ key = "2" , mods = "Option", chars = "\u0001\u0032" }, # C-a 2
{ key = "3" , mods = "Option", chars = "\u0001\u0033" }, # C-a 3
{ key = "4" , mods = "Option", chars = "\u0001\u0034" }, # C-a 4
{ key = "5" , mods = "Option", chars = "\u0001\u0035" }, # C-a 5
{ key = "6" , mods = "Option", chars = "\u0001\u0036" }, # C-a 6
{ key = "7" , mods = "Option", chars = "\u0001\u0037" }, # C-a 7
{ key = "8" , mods = "Option", chars = "\u0001\u0038" }, # C-a 8
{ key = "9" , mods = "Option", chars = "\u0001\u0039" }, # C-a 9
{ key = "h" , mods = "Option", chars = "\u0001\u0068" }, # C-a left
{ key = "j" , mods = "Option", chars = "\u0001\u006a" }, # C-a down
{ key = "k" , mods = "Option", chars = "\u0001\u006b" }, # C-a up
{ key = "l" , mods = "Option", chars = "\u0001\u006c" }, # C-a right
# for tmux resizing
# option + command + <hjkl> for resizing
{ key = "k" , mods = "Option|command", chars = "\u0001\u001b\u005b\u0031\u003b\u0035\u0041" }, # C-a C-up
{ key = "j" , mods = "Option|command", chars = "\u0001\u001b\u005b\u0031\u003b\u0035\u0042" }, # C-a C-down
{ key = "l" , mods = "Option|command", chars = "\u0001\u001b\u005b\u0031\u003b\u0035\u0043" }, # C-a C-right
{ key = "h" , mods = "Option|command", chars = "\u0001\u001b\u005b\u0031\u003b\u0035\u0044" }, # C-a C-left
{ key = "n" , mods = "Alt", chars = "\u0001\u006e" }, # alt+n -> C-a n
{ key = "p" , mods = "Alt", chars = "\u0001\u0070" }, # alt+p -> C-a p
{ key = "ArrowLeft", mods = "Command|Shift", action = "SelectPreviousTab" },
{ key = "ArrowRight", mods = "Command|Shift", action = "SelectNextTab" },
]
[cursor]
style.shape = "Block"
style.blinking = "Off"
[mouse]
# hide_when_typing = true

View File

@@ -0,0 +1,91 @@
{
"title": "Keyboard Brightness Adjustment",
"rules": [
{
"description": "command-f1 and f2 to adjust keyboard brightness",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "f1",
"modifiers": {
"mandatory": [
"left_command"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "illumination_decrement"
}
]
},
{
"type": "basic",
"from": {
"key_code": "f2",
"modifiers": {
"mandatory": [
"left_command"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "illumination_increment"
}
]
}
]
},
{
"description": "command-f5 and f6 to adjust keyboard brightness, same keys as earlier macs",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "f5",
"modifiers": {
"mandatory": [
"left_command"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "illumination_decrement"
}
]
},
{
"type": "basic",
"from": {
"key_code": "f6",
"modifiers": {
"mandatory": [
"left_command"
],
"optional": [
"caps_lock"
]
}
},
"to": [
{
"key_code": "illumination_increment"
}
]
}
]
}
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -84,10 +84,12 @@ editor_filesize_threshold=64M
editor_stop_format_chars=-+*\\,.;:&>
mcview_eof=
skin=solarized-dark-256color
shell_directory_timeout=900
filepos_max_saved_entries=1024
[Layout]
output_lines=0
left_panel_size=75
left_panel_size=86
top_panel_size=0
message_visible=true
keybar_visible=true
@@ -114,6 +116,11 @@ clipboard_paste=
base_color=
xterm-256color=
color_terminals=
alacritty=
xterm=
rxvt-256color=
screen-256color=
xterm-24bit=
[Panels]
show_mini_info=true
@@ -139,7 +146,7 @@ select_flags=6
simple_swap=false
[Panelize]
Modified git files=git ls-files --modified
Find rejects after patching=find . -name \\*.rej -print
Find *.orig after patching=find . -name \\*.orig -print
Find SUID and SGID programs=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print
Find rejects after patching=find . -name \\*.rej -print
Modified git files=git ls-files --modified

View File

@@ -8,7 +8,7 @@
pager = less -FRX
editor = vim
[alias]
glog = log --graph --decorate --all
glog = log --graph --decorate
glogs = log --graph --stat
ci = commit
st = status
@@ -24,10 +24,12 @@
# if no file is specified, show diff for all files in the changeset
diffc = "!f() { git diff ${1}^1 ${1} -- $2; }; f"
vimdiffc = "!f() { git vimdiff ${1}^1 ${1} -- $2; }; f"
cat = show
webui = !/Users/jetpac/.git-webui/release/libexec/git-core/git-webui
[user]
name = Petr Nyc
email = jet.jetpac@gmail.com
email = petr.nyc@oracle.com
[merge]
tool = vimdiff
@@ -41,3 +43,9 @@
; modulePath = /usr/lib/apache2/modules
[init]
defaultBranch = master
[webui]
autoupdate = true
; [color]
; ui = auto
[http]
sslVerify = false

6
.hgrc
View File

@@ -44,7 +44,7 @@ vimdiff.premerge = keep
[alias]
# glog
# g = !USER=$($HG showconfig ui.username); A=$( $HG log -r qbase..qtip --template '{rev}|' 2>/dev/null ); $HG glog --template "{rev}:{node|short} \033[33m{branch}\033[0m {phase} {author}\n{desc}\n\n" $@ | perl -pe 's/(^[| o@+-]+\d+:[0-9a-f]{12} \S+ (?!public))(\S+)(.*)/\1\033[31m\2\033[0m\3/; s/(\Q'"${USER//@/\\E\\@\\Q}"'\E)/\033[32m\1\033[0m\3/; s/(^[| o@+-]+)('${A:+(${A%|})}':[0-9a-f]{12})/\1\033[34m\2\033[0m/' 2>/dev/null | less -FRX
g = !USER=$($HG showconfig ui.username); A=$( $HG log -r qbase..qtip --template '{rev}|' 2>/dev/null ); $HG glog --template "{rev}:{node|short} \033[33m{branch}\033[0m {phase} {author}\n{desc}\n\n" $@ | perl -pe 's/(^[| o@+-]+\d+:[0-9a-f]{12} \S+ (?!public))(\S+)(.*)/\1\033[31m\2\033[0m\3/; s/(\Q'"${USER//@/\\E\\@\\Q}"'\E)/\033[32m\1\033[0m\3/; s/(^[| o@+-]+)('${A:+(${A%|})}':[0-9a-f]{12})/\1\033[34m\2\033[0m/' 2>/dev/null | less -FRX
# glog on branch
gb = !$HG g -b . $@
@@ -57,8 +57,8 @@ he = !/bin/bash -O extglob -c '$HG --config extensions.histedit= help histedit 2
d = !/bin/bash -O extglob -c 'h="[0-9a-f]"; h="$h$h$h$h"; case "${@}" in "") set -- -c $($HG parent --template '{rev}');; +([0-9])|$h$h$h) set -- -c "$1";; esac; $HG diff ${@}' blah $@
# clever log (requires also the 'style' alias)
# l = !/bin/bash -O extglob -c 'h="[0-9a-f]"; h="$h$h$h$h"; case "${@}" in "") set -- -r $($HG parent --template '{rev}');; +([0-9])|$h$h$h) set -- -r "$1" ;; esac; $HG log -v --style <(hg style) ${@}' blah $@
# style = !echo $'changeset = \'changeset: {rev}:{node|short}\\\\n{branches}{tags}{parents}user: {author}\\\\ndate: {date|date}\\\\ndescription:\\\\n\\\\t{desc|strip|tabindent}\\\\n\\\\n\'\nchangeset_quiet = \'{rev}:{node|short}\\\\n\'\nchangeset_verbose = \'\\\\n\\\\033[33mchangeset: {rev}:{node|short}\\\\033[0m\\\\n{branches}{tags}{parents}user: {author}\\\\ndate: {date|date}\\\\n\\\\ndescription:\\\\n\\\\t{desc|strip|tabindent}\\\\n\\\\n{file_mods}{file_adds}{file_dels}{file_copies}\\\\n\'\nchangeset_debug = \'changeset: {rev}:{node}\\\\n{branches}{tags}{parents}{manifest}{extras}user: {author}\\\\ndate: {date|date}\\\\ndescription:\\\\n\\\\t{desc|strip|tabindent}\\\\n\\\\n{file_mods}{file_adds}{file_dels}{file_copies}\\\\n\'\nstart_files = \'files:\\\\n\'\nfile = \' {file}\\\\n\'\nend_files = \'\'\nstart_file_mods = \'\\\\033[34mmodified:\\\\033[0m\\\\n\'\nfile_mod = \' {file_mod}\\\\n\'\nend_file_mods = \'\'\nstart_file_adds = \'\\\\033[32madded:\\\\033[0m\\\\n\'\nfile_add = \' {file_add}\\\\n\'\nend_file_adds = \'\'\nstart_file_dels = \'\\\\033[31mremoved:\\\\033[0m\\\\n\'\nfile_del = \' {file_del}\\\\n\'\nend_file_dels = \'\'\nstart_file_copies = \'copied:\\\\n\'\nfile_copy = \' {name}\\\\n (from {source})\\\\n\'\nend_file_copies = \'\'\nparent = \'parent: {rev}:{node|formatnode}\\\\n\'\nmanifest = \'manifest: {rev}:{node}\\\\n\'\nbranch = \'branch: {branch}\\\\n\'\ntag = \'tag: {tag}\\\\n\'\nextra = \'extra: {key}={value|stringescape}\\\\n\''
l = !/bin/bash -O extglob -c 'h="[0-9a-f]"; h="$h$h$h$h"; case "${@}" in "") set -- -r $($HG parent --template '{rev}');; +([0-9])|$h$h$h) set -- -r "$1" ;; esac; $HG log -v --style <(hg style) ${@}' blah $@
style = !echo $'changeset = \'changeset: {rev}:{node|short}\\\\n{branches}{tags}{parents}user: {author}\\\\ndate: {date|date}\\\\ndescription:\\\\n\\\\t{desc|strip|tabindent}\\\\n\\\\n\'\nchangeset_quiet = \'{rev}:{node|short}\\\\n\'\nchangeset_verbose = \'\\\\n\\\\033[33mchangeset: {rev}:{node|short}\\\\033[0m\\\\n{branches}{tags}{parents}user: {author}\\\\ndate: {date|date}\\\\n\\\\ndescription:\\\\n\\\\t{desc|strip|tabindent}\\\\n\\\\n{file_mods}{file_adds}{file_dels}{file_copies}\\\\n\'\nchangeset_debug = \'changeset: {rev}:{node}\\\\n{branches}{tags}{parents}{manifest}{extras}user: {author}\\\\ndate: {date|date}\\\\ndescription:\\\\n\\\\t{desc|strip|tabindent}\\\\n\\\\n{file_mods}{file_adds}{file_dels}{file_copies}\\\\n\'\nstart_files = \'files:\\\\n\'\nfile = \' {file}\\\\n\'\nend_files = \'\'\nstart_file_mods = \'\\\\033[34mmodified:\\\\033[0m\\\\n\'\nfile_mod = \' {file_mod}\\\\n\'\nend_file_mods = \'\'\nstart_file_adds = \'\\\\033[32madded:\\\\033[0m\\\\n\'\nfile_add = \' {file_add}\\\\n\'\nend_file_adds = \'\'\nstart_file_dels = \'\\\\033[31mremoved:\\\\033[0m\\\\n\'\nfile_del = \' {file_del}\\\\n\'\nend_file_dels = \'\'\nstart_file_copies = \'copied:\\\\n\'\nfile_copy = \' {name}\\\\n (from {source})\\\\n\'\nend_file_copies = \'\'\nparent = \'parent: {rev}:{node|formatnode}\\\\n\'\nmanifest = \'manifest: {rev}:{node}\\\\n\'\nbranch = \'branch: {branch}\\\\n\'\ntag = \'tag: {tag}\\\\n\'\nextra = \'extra: {key}={value|stringescape}\\\\n\''
# status with paths relative to current directory
s = !/bin/bash -O extglob -c 'h="[0-9a-f]"; h="$h$h$h$h"; case "${@}" in "") set -- $($HG root) ;; +([0-9])|$h$h$h) set -- --rev "$1^:$1" ;; esac; $HG status ${@}' blah $@

2
.mailcap Normal file
View File

@@ -0,0 +1,2 @@
# inspiration here: https://emacs.stackexchange.com/questions/63436/is-there-some-way-to-view-the-html-part-of-an-email-in-an-external-browser-or-as
text/html; open %s; nametemplate=%s.html

82
.notmuch-config Normal file
View File

@@ -0,0 +1,82 @@
# .notmuch-config - Configuration file for the notmuch mail system
#
# For more information about notmuch, see https://notmuchmail.org
# Database configuration
#
# Supported values are 'mail_root' and 'path'. The recommended option
# is to set 'mail_root' to the directory where your mail currently exists
# and to where mail will be delivered in the future. Files should be
# individual email messages. By default notmuch will store its database
# in $XDG_DATA_HOME/notmuch; you can override this by setting 'path'.
# If only 'path' is set, this directory is for 'mail_root' and for
# the database location (in a subdirectory called ".notmuch").
#
[database]
path=/Users/jetpac/.mail
# User configuration
#
# Here is where you can let notmuch know how you would like to be
# addressed. Valid settings are
#
# name Your full name.
# primary_email Your primary email address.
# other_email A list (separated by ';') of other email addresses
# at which you receive email.
#
# Notmuch will use the various email addresses configured here when
# formatting replies. It will avoid including your own addresses in the
# recipient list of replies, and will set the From address based on the
# address to which the original email was addressed.
#
[user]
primary_email=petr.nyc@oracle.com
# Configuration for "notmuch new"
#
# The following options are supported here:
#
# tags A list (separated by ';') of the tags that will be
# added to all messages incorporated by "notmuch new".
#
# ignore A list (separated by ';') of file and directory names
# that will not be searched for messages by "notmuch new".
#
# NOTE: *Every* file/directory that goes by one of those
# names will be ignored, independent of its depth/location
# in the mail store.
#
[new]
ignore=.mbsyncstate;.uidvalidity;
tags=unread;inbox;new
# Search configuration
#
# The following option is supported here:
#
# exclude_tags
# A ;-separated list of tags that will be excluded from
# search results by default. Using an excluded tag in a
# query will override that exclusion.
#
[search]
# Maildir compatibility configuration
#
# The following option is supported here:
#
# synchronize_flags Valid values are true and false.
synchronize_flags=true
#
# If true, then the following maildir flags (in message filenames)
# will be synchronized with the corresponding notmuch tags:
#
# Flag Tag
# ---- -------
# D draft
# F flagged
# P passed
# R replied
# S unread (added when 'S' flag is not present)
#
# The "notmuch new" command will notice flag changes in filenames
# and update tags, while the "notmuch tag" and "notmuch restore"
# commands will notice tag changes and update flags in filenames
#
[maildir]

View File

@@ -95,7 +95,7 @@
vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
# vpn_ip # virtual private network indicator
vpn_ip # virtual private network indicator
# load # CPU load
# disk_usage # disk usage
# ram # free RAM
@@ -103,14 +103,14 @@
todo # todo items (https://github.com/todotxt/todo.txt-cli)
timewarrior # timewarrior tracking status (https://timewarrior.net/)
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
# cpu_arch # CPU architecture
cpu_arch # CPU architecture
time # current time
# =========================[ Line #2 ]=========================
newline
# ip # ip address and bandwidth usage for a specified network interface
# public_ip # public IP address
# proxy # system-wide http/https/ftp proxy
# battery # internal battery
proxy # system-wide http/https/ftp proxy
battery # internal battery
# wifi # wifi speed
# example # example user-defined segment (see prompt_example function below)
)
@@ -539,9 +539,9 @@
###################[ command_execution_time: duration of the last command ]###################
# Show duration of the last command if takes at least this many seconds.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0.1
# Show this many fractional digits. Zero means round to seconds.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=1
# Execution time color.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=101
# Duration format: 1d 2h 3m 4s.
@@ -553,7 +553,7 @@
#######################[ background_jobs: presence of background jobs ]#######################
# Don't show the number of background jobs.
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=true
# Background jobs color.
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=70
# Custom icon.
@@ -990,7 +990,7 @@
# Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
# Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
# typeset -g POWERLEVEL10K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############
# Nodeenv color.
@@ -1536,7 +1536,7 @@
# Battery pictograms going from low to high level of charge.
typeset -g POWERLEVEL9K_BATTERY_STAGES='\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'
# Don't show the remaining time to charge/discharge.
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=true
#####################################[ wifi: wifi speed ]#####################################
# WiFi color.

15
.seeks.ccatc Normal file
View File

@@ -0,0 +1,15 @@
[dep]
upgrade: ask
user_email: petr.nyc@oracle.com
[bitbucket]
username: pnyc
[templates]
project: CCATC
repo: ccatc-seeks
branch: main
vcs: SCM
scmrepo: ocid1.devopsrepository.oc1.phx.amaaaaaaw4vcxbyahrz7vgu4tdwdcfwd26e5fvmcoidmxrtmdvwyowqhi6rq
filepath: seeks_templates.conf

12
.seeks.odaas Normal file
View File

@@ -0,0 +1,12 @@
[dep]
upgrade: ask
user_email: petr.nyc@oracle.com
[bitbucket]
username: pnyc
[templates]
project: ODAAS
repo: cm_automation
branch: main
filepath: change_templates/seeks_templates.conf

1354
.spacemacs Normal file

File diff suppressed because it is too large Load Diff

16
.ssh/config.oci Normal file
View File

@@ -0,0 +1,16 @@
Include config-scm
Include ssh_configs/config
Include osd_configs/config
Include user
Host bitbucket.oci.oraclecorp.com
IdentityFile ~/.ssh/orabucket
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
Host dabel dabel.us.oracle.com andel andel.us.oracle.com gates gates.us.oracle.com
User pnyc
IdentityFile ~/.ssh/dabel.key
RequestTTY yes

170
.ssh/config.solaris Normal file
View File

@@ -0,0 +1,170 @@
# Include config-scm
Host *
# UseKeychain yes
AddKeysToAgent yes
ServerAliveInterval 300
ServerAliveCountMax 2
TCPKeepAlive no
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
# User pnyc
Host *
IdentitiesOnly yes
Host 192.168.2.*
IdentitiesOnly yes
Host osd-fra
User desktopuser
HostName 100.109.60.126
IdentityFile ~/.ssh/id_ed25519
Host gitlab.com
User git
IdentityFile ~/.ssh/gitlab
Host solaris-reviews.us.oracle.com
User hg
IdentityFile ~/.ssh/id_phabricator
Host hetzner
HostName u444067.your-storagebox.de
User u444067
Port 23
IdentityFile ~/.ssh/id_hetzner
# for SCM
Host oci.private.devops.scmservice.us-phoenix-1.oci.oracleiaas.com
PKCS11Provider /Library/OpenSC/lib/opensc-pkcs11.so
User pnyc@bmc_operator_access
Host pnyc-ws pnyc-ws.webad1phx.solarisx86phx.oraclevcn.com
HostName pnyc-ws.webad1phx.solarisx86phx.oraclevcn.com
User opc
IdentityFile ~/.ssh/id_pnyc-ws
# ssh -i ./id_pnyc-ws opc@pnyc-ws.webad1phx.solarisx86phx.oraclevcn.com
Host osdbld
HostName 100.73.219.187
User opc
IdentityFile ~/.ssh/id_nginxbuild
Host nginx-osd-dev
Hostname 100.106.197.175
User opc
IdentityFile ~/.ssh/osd-dev-pnyc
Host osd-calico-dev osd-calico-dev.webad1phx.solarisx86phx.oraclevcn.com
Hostname osd-calico-dev.webad1phx.solarisx86phx.oraclevcn.com
User opc
IdentityFile ~/.ssh/id_ed25519
# private m1 mac
Host 192.168.2.81
User jetpac
IdentityFile /Users/jetpac/.ssh/id_mac_private
Host git.meinlschmidt.org
IdentityFile ~/.ssh/git.meinlschmidt.org
Host 192.168.2.1 gw gw.doma.jetpac.org
IdentityFile ~/.ssh/mikrotik
Host github.com
IdentityFile ~/.ssh/github.com
Host bitbucket.oci.oraclecorp.com
IdentityFile ~/.ssh/orabucket
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
Host www.jetpac.org
IdentityFile ~/.ssh/id_ed25519.jetpac.org
User jetpac
Host dabel dabel.us.oracle.com andel andel.us.oracle.com gates gates.us.oracle.com
User pnyc
IdentityFile ~/.ssh/dabel.key
RequestTTY yes
Host hubbins hubbins.us.oracle.com 10.134.7.102
User pnyc
Host tdabel
User pnyc
Hostname dabel.us.oracle.com
IdentityFile ~/.ssh/dabel.key
RequestTTY yes
RemoteCommand tmux new -A
Host utmfedora
Hostname 192.168.205.3
User jetpac
Host 100.106.196.204 pnyc-mrspatmore.webad1phx.solarisx86phx.oraclevcn.com pnyc-mrspatmore
User jetpac
Hostname 100.106.196.204
IdentityFile ~/.ssh/pnyc-mrspatmore
Host osd osd-dev-pnyc.webad1phx.solarisx86phx.oraclevcn.com
IdentityFile ~/.ssh/osd-dev-pnyc
Hostname osd-dev-pnyc.webad1phx.solarisx86phx.oraclevcn.com
user pnyc
Host osd-ol7 osd-dev-ol7.webad1phx.solarisx86phx.oraclevcn.com
IdentityFile ~/.ssh/osd-dev-pnyc
Hostname osd-dev-ol7.webad1phx.solarisx86phx.oraclevcn.com
user pnyc
Host andel.us.oracle.com dabel.us.oracle.com gates.us.oracle.com
User pnyc
Host gitlocal
Hostname 127.0.0.1
Port 2200
Host oci-wireguard
Hostname 130.61.98.65
User ubuntu
IdentityFile ~/.ssh/id_ed25519_oci
Host libcurlbuild
Hostname led-build-mac.uk.oracle.com
User petrnyc
Host 192.168.2.72 homeassistant ha
Hostname 192.168.2.72
user hassio
IdentityFile ~/.ssh/jetpac01ha
Host adam-test
HostName 100.106.212.188
User opc
Host nori nori.commonsub.zsphx.oraclevcn.com
Hostname nori.commonsub.zsphx.oraclevcn.com
User opc
# Host operator-access-token.svc.ad1.r2 bastion*.oracleiaas.com
# Include ~/.ssh/ssh_configs/config
# User pnyc
# vim: tabstop=4 shiftwidth=4
#Include ~/.ssh/ssh_configs/config
#Include ~/.ssh/osd_configs/config
Include ossh_configs/*.ossh
Include ssh_configs/config
Include osd_configs/config

267
.ssh/scm-script.sh Executable file
View File

@@ -0,0 +1,267 @@
#!/bin/bash
export SSH_SCM_AUTH_SOCK="$HOME/.ssh/scm-agent.sock"
SCRIPT_VERSION=1
# Starts the custom SSH agent.
start_scm_ssh_agent() {
# Check if the socket file exists
if [ -S "$SSH_SCM_AUTH_SOCK" ]; then
# If the socket exists, check if the SSH agent process is running
AGENT_PID=$(ps aux | grep $SSH_SCM_AUTH_SOCK | grep -v grep | head -1 | awk '{print $2}')
# If no associated process is found or the agent isn't running, start a new SSH agent
if [ -z "$AGENT_PID" ]; then
echo "Socket exists but no running agent, starting new SSH agent..."
rm $SSH_SCM_AUTH_SOCK
eval $(ssh-agent -a "$SSH_SCM_AUTH_SOCK")
else
# If the agent is already running, use the existing one
echo "SSH agent already running with PID: $AGENT_PID, using existing agent."
fi
else
# If the socket doesn't exist, start a new SSH agent
echo "Socket doesn't exist, starting new SCM SSH agent..."
ssh-agent -a "$SSH_SCM_AUTH_SOCK"
fi
}
# Stops the custom SSH agent.
stop_scm_ssh_agent() {
# Check if the socket file exists
if [ -S "$SSH_SCM_AUTH_SOCK" ]; then
# If the socket exists, check if the SSH agent process is running
AGENT_PID=$(ps aux | grep $SSH_SCM_AUTH_SOCK | grep -v grep | head -1 | awk '{print $2}')
# If no associated process is found or the agent isn't running, start a new SSH agent
if [ -z "$AGENT_PID" ]; then
echo "Socket exists but no running agent, removing the socket..."
rm $SSH_SCM_AUTH_SOCK
else
# If the agent is already running, use the existing one
echo "Killing SSH agent running with PID: $AGENT_PID ..."
SSH_AGENT_PID=$AGENT_PID ssh-agent -k
fi
else
# If the socket doesn't exist, start a new SSH agent
echo "Socket doesn't exist, nothing to do to stop SSH agent."
fi
}
ssh_add() {
ssh_reset
}
ssh_reset() {
echo "Clearing and reloading the card..."
local providers=("/usr/local/lib/libykcs11.dylib" "/usr/lib64/opensc-pkcs11.so" "/usr/local/lib/opensc-pkcs11.so")
if [[ -S "$SSH_SCM_AUTH_SOCK" ]]; then
SSH_AUTH_SOCK="$SSH_SCM_AUTH_SOCK" ssh-add -D
local provider_path="$1"
if [[ -z "$provider_path" ]]; then
for path in "${providers[@]}"; do
if [[ -e "$path" ]]; then
echo "Using provider '${provider_path}'"
SSH_AUTH_SOCK="$SSH_SCM_AUTH_SOCK" ssh-add -e "$path"
SSH_AUTH_SOCK="$SSH_SCM_AUTH_SOCK" ssh-add -s "$path"
return
fi
done
elif [[ -e "$provider_path" ]]; then
SSH_AUTH_SOCK="$SSH_SCM_AUTH_SOCK" ssh-add -e "$provider_path"
SSH_AUTH_SOCK="$SSH_SCM_AUTH_SOCK" ssh-add -s "$provider_path"
else
echo "Invalid provider path: $provider_path"
return 1
fi
else
read -p "SSH agent socket not found at $sock_path. Continue with default SSH Agent (without SSH_AUTH_SOCK) or you may run 'start_agent' command to setup one? (y/n): " confirm
if [[ "$confirm" != "y" ]]; then
echo "Aborted."
return 1
fi
ssh-add -D
local provider_path="$1"
if [[ -z "$provider_path" ]]; then
for path in "${providers[@]}"; do
if [[ -e "$path" ]]; then
ssh-add -e "$path"
ssh-add -s "$path"
return
fi
done
elif [[ -e "$provider_path" ]]; then
ssh-add -e "$provider_path"
ssh-add -s "$provider_path"
else
echo "Invalid provider path: $provider_path"
return 1
fi
fi
}
install() {
local script_path="$HOME/.ssh/scm-script.sh"
mkdir -p "$HOME/.ssh"
chmod 700 $HOME/.ssh
cp "$0" "$script_path"
chmod +x "$script_path"
if [ "$(uname)" == "Darwin" ]; then
install_yubico_piv_tool_mac
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
install_yubico_piv_tool_linux
else
echo "Unsupported OS"
return 1
fi
local profile_file
if [[ $SHELL == "/bin/bash" ]]; then
profile_file="$HOME/.bashrc"
else
profile_file="$HOME/.zshrc"
fi
if ! grep -q "Include config-scm" "$HOME/.ssh/config"; then
cat <<< "Include config-scm
$(cat $HOME/.ssh/config)
" > $HOME/.ssh/config
cat > $HOME/.ssh/config-scm << EOF
Host oci*.private.devops.scmservice.*.oci.oracleiaas.com
User $(whoami)@bmc_operator_access
IdentityAgent $HOME/.ssh/scm-agent.sock
EOF
fi
if ! grep -q "alias scm-ssh='$script_path'" "$profile_file"; then
echo "" >> "$profile_file"
echo "" >> "$profile_file"
echo "alias scm-ssh='$script_path'" >> "$profile_file"
echo "scm-ssh start_agent" >> "$profile_file"
fi
echo "SCM script installed successfully. Please restart your terminal or run 'source $profile_file' to apply changes."
}
install_yubico_piv_tool_linux() {
local providers=("/usr/local/lib/libykcs11.dylib" "/usr/lib64/opensc-pkcs11.so" "/usr/local/lib/opensc-pkcs11.so")
for path in "${providers[@]}"; do
if [[ -e "$path" ]]; then
return
fi
done
echo "Automatic install not supported. Please install OpenSC or Yubico PIV Tool manually."
}
install_yubico_piv_tool_mac() {
local url="https://developers.yubico.com/yubico-piv-tool/Releases/yubico-piv-tool-latest-mac-universal.pkg"
local pkg_file="/tmp/yubico-piv-tool-latest-mac-universal.pkg"
local lib_path="/usr/local/lib/libykcs11.dylib"
if [[ -f $lib_path ]]; then
echo "Yubico PIV tool is already installed at $lib_path. Skipping..."
return 0
fi
echo "Downloading Yubico PIV Tool..."
curl -L "$url" -o "$pkg_file"
if [[ ! -f "$pkg_file" ]]; then
echo "Download failed!"
return 1
fi
echo "Installing Yubico PIV Tool... (sudo password might be required)"
if sudo installer -pkg "$pkg_file" -target /; then
echo "Installation of Yubico PIV Tool complete"
else
echo "Install failed"
return 1
fi
# Cleanup
rm "$pkg_file"
echo "Verifying installation..."
if [[ -f "$lib_path" ]]; then
echo "Library $lib_path is present!"
else
echo "Library $lib_path is missing! Installation might be incomplete."
return 1
fi
}
scm_script_help() {
echo "Usage: $0 <command> [args...]"
echo "---------------------------"
echo "Commands:"
echo " start_agent - Starts the SCM ssh agent."
echo " stop_agent - Stops the SCM ssh agent."
echo " ssh_reset - Clears and reload the Yubikey to the agent."
echo " ssh_add - Alias to ssh_reset."
echo " install - Installs scm command by copying script to ~/.ssh/scm-script.sh and adding alias to the profile."
echo " install_yubico_piv_tool - Download and install Yubikey PIV tool"
echo " help - Displays this help message."
echo "---------------------------"
echo "Completed execution of SCM Script v${SCRIPT_VERSION}."
}
# Prevent execution when sourced in both bash and zsh
if [[ -n "$ZSH_VERSION" ]]; then
return # For zsh
elif [[ -n "$BASH_VERSION" && "${BASH_SOURCE[0]}" != "$0" ]]; then
return # For bash
fi
# Check if at least one argument is provided
if [ "$#" -lt 1 ]; then
scm_script_help
exit 1
fi
# Extract the command
COMMAND="$1"
shift # Remove the first argument
# Execute the corresponding function
case "$COMMAND" in
start_agent)
start_scm_ssh_agent "$@"
;;
stop_agent)
stop_scm_ssh_agent "$@"
;;
ssh_reset)
ssh_reset "$@"
;;
ssh_add)
ssh_add "$@"
;;
install)
install "$@"
;;
install_yubico_piv_tool)
install_yubico_piv_tool "$@"
;;
*)
echo "Invalid command. Use help."
exit 1
;;
esac
echo "Completed execution of SCM Script v${SCRIPT_VERSION}."

View File

@@ -4,21 +4,19 @@ set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-sidebar'
set -g @plugin 'tmux-plugins/tmux-pain-control'
set -g @plugin 'tmux-plugins/tmux-logging'
set -g @plugin 'tmux-plugins/tmux-copycat' # not needed for tmux 3.1+
set -g @plugin 'tmux-plugins/tmux-copycat'
# https://github.com/tmux-plugins/tmux-resurrect
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-resurrect' # https://github.com/tmux-plugins/tmux-resurrect
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-processes 'ssh neomutt mbsync'
# https://github.com/tmux-plugins/tmux-continuum
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @resurrect-processes 'ssh neomutt mbsync vim'
set -g @plugin 'tmux-plugins/tmux-continuum' # https://github.com/tmux-plugins/tmux-continuum
set -g @plugin 'seebi/tmux-colors-solarized'
# inspiration from https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6
set -sg terminal-overrides ",*:RGB"
# too wild, some shortcuts like meta-tab/meta-number are nice though
# set -g @plugin 'ek9/tmux-vim-bindings'
@@ -26,6 +24,10 @@ set -g @plugin 'seebi/tmux-colors-solarized'
# set -g @colors-solarized 'light'
set -g @colors-solarized 'dark'
# this causes tmux to crash
# set-option -g mouse on
# set -g @plugin 'jaclu/tmux-menus'
# Change prefix to C-a
# C-a hex value: 0x01
@@ -69,7 +71,15 @@ set -g pane-base-index 1
# tip from https://github.com/vim/vim/issues/3608
set -ag terminal-overrides ",xterm-256color:Tc"
# synchronize panes
bind e setw synchronize-panes # ; tmux display "Sync #{?pane_synchronized,ON,OFF}"
# tpm install: git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
# test for https://unix.stackexchange.com/questions/480437/can-i-ask-tmux-to-immediately-exit-copy-mode-and-paste-the-content-when-i-yank
bind-key -T copy-mode-vi Y send-keys -X copy-pipe-and-cancel "tmux paste-buffer"

31
.tridactylrc Normal file
View File

@@ -0,0 +1,31 @@
" General Settings
set update.lastchecktime 1755245204669
set update.nag true
set update.nagwait 7
set update.lastnaggedversion 1.14.0
set update.checkintervalsecs 86400
set configversion 2.0
set editorcmd '/opt/homebrew/bin/emacsclient'
set smoothscroll true
" pentadactyl-style tab switching
bind J tabnext
bind K tabprev
blacklistadd https://www.youtube.com/
blacklistadd https://login.us-phoenix-1.idp.mc1.oracleiaas.com/
blacklistadd https://jellyfin.cloud.jetpac.org
" blacklistadd https://grt.us.oracle.com
" auto-contain
" tip from https://github.com/tridactyl/tridactyl/issues/1559
seturl youtube.com modeindicator false
" vim bind u back
" vim bind U undo
" vim bind Y clipboard yank
" vim u
" nbind <c-f>
" For syntax highlighting see https://github.com/tridactyl/vim-tridactyl
" vim: set filetype=tridactyl

19
.vimrc
View File

@@ -46,6 +46,7 @@ Plug 'bling/vim-bufferline'
Plug 'tpope/vim-characterize'
Plug 'tpope/vim-endwise'
Plug 'doums/darcula' " pycharm scheme reproduction
Plug 'hashivim/vim-terraform'
if s:usecopilot == 1
Plug 'github/copilot.vim', { 'on': 'Copilot' }
@@ -78,10 +79,10 @@ let g:syntastic_yaml_checkers = ['yamllint']
" " https://vi.stackexchange.com/questions/10007/how-to-make-syntastic-include-sourced-files-for-bash-syntax-as-shellcheck-x
" let g:syntastic_sh_shellcheck_args = "-x"
" let g:syntastic_mode_map = {
" \ "mode": "active",
" \ "active_filetypes": [],
" \ "passive_filetypes": ["sh, yaml"] }
let g:syntastic_mode_map = {
\ "mode": "passive",
\ "active_filetypes": [ "bash" ],
\ "passive_filetypes": ["sh, yaml"] }
set modeline
set modelines=5
@@ -107,10 +108,20 @@ endif
" solarized config
set termguicolors
set background=dark " or light
" colorscheme solarized
colorscheme darcula
" Check if the color scheme file is available before applying it
if exists("g:plugs['darcula']") && filereadable(expand("~/.vim/plugged/darcula/colors/darcula.vim"))
colorscheme darcula
endif
hi Visual term=reverse cterm=reverse guibg=Grey
" open unfolded
set foldlevel=99
" copilot config
imap <silent> <C-j> <Plug>(copilot-next)

4
.yamllint Normal file
View File

@@ -0,0 +1,4 @@
rules:
line-length:
max: 200
allow-non-breakable-words: true

77
.zshenv
View File

@@ -2,15 +2,27 @@ set -o vi
export LC_ALL=en_US.UTF-8
export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/jetpac/work/flutter/bin:$HOME/.rd/bin:$HOME/bin:PATH
export PATH=/Users/jetpac/.asdf/shims/:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/jetpac/work/flutter/bin:$HOME/.rd/bin:$HOME/bin:$PATH:$HOME/.fzf/bin
alias oe='open /Applications/Emacs.app'
alias config='/usr/bin/git --git-dir=$HOME/.cfg/.git/ --work-tree=$HOME'
alias mc='/opt/homebrew/bin/mc --nosubshell'
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
alias -g N="2>&1 "
alias pig='ping'
# export PATH=$HOME/.rd/bin
#
# on speccy only
if [[ "$(hostname)" == "speccy" ]];
then
# defined via https://github.com/syl20bnr/spacemacs/wiki/Terminal
export TERM=xterm-24bit
alias ssh="TERM=xterm-256color ssh"
alias vi=te
alias vim=te
fi
# for gems installed in my home direcotry
# inspiration: https://guides.cocoapods.org/using/getting-started.html#installation
@@ -67,4 +79,63 @@ export seznam6='2a02:598:2::1222'
export OPENAI_API_KEY='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'
# for flutter
export PATH=$PATH:/Users/jetpac/Documents/flutter-dev-env/bin
# export PATH=$PATH:/Users/jetpac/Documents/flutter-dev-env/bin
export NVM_DIR="$HOME/.nvm"
# nvm initialization is commented out; it significantly slows down shell startup
# [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
#
ZSH_AUTOSUGGEST_ACCEPT_WIDGETS='vi-forward-char'
#ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS='end-of-line'
#
# alias km='kubectl --kubeconfig /Users/jetpac/.kube.lenovo/config'
alias nextcloud-shell='k exec -n nextcloud deployments/nextcloud -c nextcloud -it -- runuser --user www-data bash'
alias nextcloud-shell-root='k exec -n nextcloud deployments/nextcloud -c nextcloud -it -- bash'
alias occ='k exec -n nextcloud deployments/nextcloud -c nextcloud -it -- runuser --user www-data /var/www/html/occ'
alias speech_to_text="$HOME/Downloads/whisper.cpp/convert_video_to_txt.sh"
if [ -f "/Users/jetpac/.local/bin/k9s" ]; then
alias k9s='/Users/jetpac/.local/bin/k9s --logoless'
fi
# lh nodes function for kubectl
if [[ -n ${commands[kubectl]} ]]; then
lh_nodes() {
local ns="${1:-longhorn-system}"
kubectl -n "$ns" get nodes.longhorn.io -o yaml | \
yq eval '
.items[] |
{
"node": .metadata.name,
"allowScheduling": .spec.allowScheduling,
"disks": (
[ (.spec.disks // {}) | to_entries | .[] |
{
"diskName": .key,
"path": .value.path,
"allowScheduling": .value.allowScheduling,
"evictionRequested": .value.evictionRequested,
"storageReservedGiB": ((.value.storageReserved // 0) / 1073741824)
}
]
),
"diskStatus": (
[ (.status.diskStatus // {}) | to_entries | .[] |
{
"diskName": .key,
"storageAvailableGiB": ((.value.storageAvailable // 0) / 1073741824),
"storageMaximumGiB": ((.value.storageMaximum // 0) / 1073741824),
"storageScheduledGiB":((.value.storageScheduled // 0) / 1073741824)
}
]
)
}'
}
fi
alias scm-ssh='/Users/jetpac/.ssh/scm-script.sh'

124
.zshrc
View File

@@ -9,6 +9,30 @@ if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# if not present, install zsh-syntax-highlighting plugin
if [ ! -d "${HOME}/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting" ];
then
cd "${HOME}/.oh-my-zsh/custom/plugins/"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git &> /dev/null
fi
# if not present, install zsh-completions plugin
if [ ! -d "${HOME}/.oh-my-zsh/custom/plugins/zsh-completions" ];
then
cd "${HOME}/.oh-my-zsh/custom/plugins/"
git clone https://github.com/zsh-users/zsh-completions.git &> /dev/null
fi
# if not present, install zsh-autosuggestions plugin
if [ ! -d "${HOME}/.oh-my-zsh/custom/plugins/zsh-autosuggestions" ];
then
cd "${HOME}/.oh-my-zsh/custom/plugins/"
git clone https://github.com/zsh-users/zsh-autosuggestions.git &> /dev/null
fi
# doesn't work well on remote hosts
# [[ -f .iterm2_shell_integration.zsh ]] && source .iterm2_shell_integration.zsh
@@ -53,7 +77,7 @@ ZSH_THEME="powerlevel10k/powerlevel10k"
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
@@ -62,7 +86,7 @@ ZSH_THEME="powerlevel10k/powerlevel10k"
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
# COMPLETION_WAITING_DOTS="true"
COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
@@ -80,12 +104,51 @@ ZSH_THEME="powerlevel10k/powerlevel10k"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# if [ -f ". /opt/homebrew/opt/asdf/libexec/asdf.sh" ]; then
# source /opt/homebrew/opt/asdf/libexec/asdf.sh
# fi
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git rsync colorize colored-man-pages vi-mode common-aliases macos themes dircycle iterm2 docker docker-compose zsh-navigation-tools urltools history mercurial tmux )
plugins=(colorize colored-man-pages vi-mode common-aliases themes dircycle iterm2 zsh-navigation-tools urltools history zsh-syntax-highlighting zsh-autosuggestions web-search aliases)
cmd_plugins=(git rsync conda tmux docker docker-compose tmux kubectl helm terraform asdf brew emacs fzf asdf brew emacs)
# Add a plugin only if its command exists
add_plugin_if_command_exists() {
local cmd="$1"
if [[ -n ${commands[$cmd]} ]]; then
# Only append if not already in the plugins array
if (( ! ${plugins[(Ie)$cmd]} )); then
plugins+=("$cmd")
fi
fi
}
for cmd in $cmd_plugins; do
add_plugin_if_command_exists "$cmd"
done
# use mercurial plugin
if [[ -n ${commands[hg]} ]]; then
plugins+=("mercurial")
fi
# use macos plugin
if [[ "$(uname -o)" == "Darwin" ]]; then
plugins+=("macos")
fi
# use zoxide
if [[ -n ${commands[zoxide]} ]]; then
export FZF_DEFAULT_OPTS="--style full"
export _ZO_FZF_OPTS="--height ~90% --tmux bottom,70% --layout reverse"
eval "$(zoxide init --cmd cd zsh)"
fi
# colorize - adds ccat and cless
# common-aliases: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/common-aliases
# themes: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes
@@ -164,14 +227,27 @@ fi
# zsh history is too short
# - https://unix.stackexchange.com/questions/273861/unlimited-history-in-zsh
HISTFILE=~/.zsh_history
# inspiration taken from yt video:
# https://youtu.be/ud7YxC33Z3w
HISTSIZE=999999999
HISTFILE=~/.zsh_history
SAVEHIST=$HISTSIZE
HISTDUP=erase
setopt appendhistory
setopt sharehistory
setopt hist_ignore_space
setopt hist_ignore_all_dups
setopt hist_save_no_dups
setopt hist_ignore_dups
setopt hist_find_no_dups
setopt hist_reduce_blanks
bindkey '^p' history-search-backward
bindkey '^n' history-search-forward
# bindkey '^f' autosuggest-accept
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=10"
### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
export PATH="/Users/jetpac/.rd/bin:$PATH"
### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
@@ -188,11 +264,43 @@ fi
unset __conda_setup
# <<< conda initialize <<<
export PATH="/opt/homebrew/bin:$PATH"
#### <BEGIN conda zsh completion>
# --- Enable conda autocompletion ---
if command -v conda &>/dev/null; then
# Ensure Conda hook is loaded
eval "$(conda shell.zsh hook)"
# Add Conda's completion functions to zsh's function path
_conda_zsh_completions_dir="$(conda info --base)/etc/profile.d"
if [ -d "$_conda_zsh_completions_dir" ]; then
fpath+=("$_conda_zsh_completions_dir")
fi
fi
autoload -U compinit && compinit
#### <END conda zsh completion>
# export PATH="/opt/homebrew/bin:$PATH"
# for cocoapods
export PATH=/opt/homebrew/opt/ruby/bin:$PATH
export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$HOME/.gem/ruby/3.3.0/bin:$PATH
# Generated for envman. Do not edit.
# [ -s "$HOME/.config/envman/load.sh" ] && source "$HOME/.config/envman/load.sh"
# alias scm-ssh='/Users/jetpac/.ssh/scm-script.sh'
# scm-ssh start_agent
# export FZF_DEFAULT_OPTS="--style full --preview '/opt/homebrew/bin/pygmentize -g {}' --bind 'focus:transform-header:file --brief {}'"
# set to system ssh-agent
if command -v launchctl >/dev/null 2>&1; then
export SSH_AUTH_SOCK="$(launchctl getenv SSH_AUTH_SOCK)"
fi
export GPG_TTY=$(tty)

View File

@@ -1,6 +1,12 @@
* How to set up this configuration
** basic setup
** Automated setup
#+begin_src sh
bash -c "$(curl -fsSL https://git.meinlschmidt.org/jetpac/dotfiles/raw/branch/main/bootstrap.sh)"
#+end_src
** manual setup
#+begin_src sh
# for linux; ignore on other systems
@@ -14,14 +20,17 @@
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
config config --local status.showUntrackedFiles no
config checkout
zsh
source ~/.proxies
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) --unattended --skip-chsh --keep-zshrc"
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
vim +PlugInstall +qall
zsh
# run tmux, prefix + I installs all plugins (needs to have proxies set)
# run vim, :PlugInstall
@@ -45,6 +54,12 @@ You can also download fonts like this:
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
#+end_src
** Emacs
#+begin_src bash
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
#+end_src
Run Emacs and wait ~10 mins to download all packages
** tmux in User's home directory
If you want to build tmux independend of other parts of the system, cut&paste from the code snippet below should do the trick.
run export PATH=$HOME/usr/local:$PATH to pick up correct libraries and binaries

6
bin/cluster_build_status Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/ksh
#
# Script to perform certain operations in the US, because I'm lazy :-)
#
ssh pnyc@scapen-cs11u4-1.us.oracle.com /home/pdmitche/bin/nightly_history.ksh $@

View File

@@ -4,12 +4,14 @@ set -e
set -x
# function to get PARENT_WS as a parameter
# default value is 'ssh://pnyc@dabel.us.oracle.com//workspace/pnyc/solaris-reviews/secure-integrate/userland11.4'
# default value is 'ssh://pnyc@andel.us.oracle.com//workspace/pnyc/solaris-reviews/secure-integrate/userland11.4'
#
if [[ -z $1 ]]; then
PARENT_WS='ssh://pnyc@dabel.us.oracle.com//workspace/pnyc/solaris-reviews/secure-integrate/userland11.4'
PARENT_WS='ssh://pnyc@dabel.us.oracle.com//workspace/pnyc/solaris-reviews/userland-pipeline'
# PARENT_WS='ssh://pnyc@andel.us.oracle.com//workspace/pnyc/solaris-reviews/secure-integrate/userland11.4'
# PARENT_WS='ssh://pnyc@andel.us.oracle.com//workspace/pnyc/solaris-reviews/userland-pipeline'
# PARENT_WS='ssh://pnyc@andel.us.oracle.com//workspace/pnyc/solaris-reviews/akidr-text'
PARENT_WS='ssh://pnyc@andel.us.oracle.com//workspace/pnyc/solaris-reviews/on-sru'
else
PARENT_WS=$1
fi
@@ -24,7 +26,9 @@ SLACK_CHANNEL='@pnyc'
DIR=$(pwd)
REPO=${PARENT_WS##*/} # userland11.4
SCRIPT_DIR_BASE=${PARENT_WS#*oracle.com/} # /workspace/pnyc/solaris-reviews/secure-integrate/userland11.4
# /workspace/pnyc/solaris-reviews/secure-integrate/userland11.4
SCRIPT_DIR_BASE=$(echo "$PARENT_WS" | awk '{sub(/^.*\/\//,"/"); print}')
MV=/bin/mv
RM=/bin/rm
CP=/bin/cp

5
bin/deansi Executable file
View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
# Remove ANSI escape sequences and ^M carriage return characters
perl -pe 's/\e\[[0-9;]*[mGKHF]//g; s/\r//g'

101
bin/lib/common.sh Normal file
View File

@@ -0,0 +1,101 @@
# common useful functions
w3m_safe() {
url="$1"
output=$(/opt/homebrew/bin/w3m "$url" -M -cols 400 -graph -dump 2>&1)
if echo "$output" | grep -q "Can't load"; then
return 2
else
echo "$output"
return 0
fi
}
# Returns:
# 0 = server reachable & remote command ran
# 1 = network/host-not-up-yet
# 2 = SSH auth failure (key needs passphrase / wrong key / agent locked) -> caller should abort
# 3 = host not found
is_server_up() {
local host err st err_lc
host=$1
# return 3 if the host does not exist
host "$host" 2>&1 > /dev/null || return 3
# Capture only stderr; do NOT use -q (it suppresses diagnostics we need to classify).
# Force English messages for stable matching.
err=$(LC_ALL=C /usr/bin/ssh \
-o BatchMode=yes \
-o PreferredAuthentications=publickey \
-o PubkeyAuthentication=yes \
-o PasswordAuthentication=no \
-o KbdInteractiveAuthentication=no \
-o NumberOfPasswordPrompts=0 \
-o ConnectTimeout=10 \
-o ServerAliveInterval=20 \
-o ServerAliveCountMax=3 \
-o ConnectionAttempts=1 \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
-o LogLevel=ERROR \
-n "$host" 'uname -n || hostname' 2>&1 >/dev/null)
st=$?
# Success
[ $st -eq 0 ] && return 0
# ssh uses 255 for any error; distinguish by stderr text
err_lc=$(printf '%s' "$err" | tr '[:upper:]' '[:lower:]')
case $err_lc in
# Common auth/passphrase/agent problems
*"permission denied"*|\
*"no supported authentication methods available"*|\
*"publickey authentication failed"*|\
*"too many authentication failures"*|\
*"sign_and_send_pubkey: signing failed"*|\
*"agent refused operation"*|\
*"agent admitted failure"*|\
*"bad permissions"*|\
*"enter passphrase"*)
printf 'FATAL: SSH authentication failed for "%s": %s\n' "$host" "$err" >&2
return 2
;;
esac
# Everything else looks like "not up yet" (timeout, DNS, connection refused/reset, kex read, etc.)
return 1
}
wait_for_server_to_boot_up() {
local server rc
server=$1
while :; do
is_server_up "$server"
rc=$?
case $rc in
0)
printf '"%s" is up and running.\n' "$server"
return 0
;;
2)
printf 'Aborting: SSH authentication failed for "%s" (key needs passphrase / wrong key / agent locked).\n' "$server" >&2
return 2
;;
3)
printf 'Aborting: Host not found.\n' "$server" >&2
return 3
;;
*)
printf 'Server "%s" is not up\n' "$server"
sleep 10
;;
esac
done
}
# vim: set ts=4 sw=4 tw=0 noet ft=sh:

45
bin/lib/logging.sh Normal file
View File

@@ -0,0 +1,45 @@
#!/usr/bin/env bash
# exec &> >(tee -a "${SYSLOG}")
# exec &> >(tee -a "${APPLOG}")
trap 'exit 1' HUP INT QUIT TERM
# trap 'on_error' EXIT
log::prefix() {
date=$(/opt/homebrew/bin/gdate '+%Y-%m-%d %H:%M:%S,%3N')
printf '%s %s\n' "${date}" "${*}"
}
log::notice() {
log::info "==> ${*}"
}
log::info() {
log::prefix "INFO ${*}"
}
log::debug() {
log::prefix "DEBUG ${*}"
}
log::warning() {
log::prefix "WARNING ${*}"
}
log::error() {
log::prefix "ERROR ${*}" >&2
}
log::fatal() {
reason="${1-Unknown or not specified}"
log::error "Fatal error. Reason: ${reason}"
kill -s TERM $$
}
on_error() {
if [ $? -ne 0 ]; then
log::fatal "Unhandled script failure"
fi
}

View File

@@ -3,6 +3,14 @@
# when the first positional command line parameter is 'on'
# and unsets them when the first positional command line parameter is 'off'
#
# proxy locations are documented at:
# https://confluence.oraclecorp.com/confluence/pages/viewpage.action?spaceKey=CORPNET&title=Corporate+Proxy+Environment
#
# this will get the first defined proxy from the PAC file:
# WPAD=http://wpad.oraclecorp.com/wpad.dat
# L_PROXY=$(curl -s "$WPAD" | \
# grep 'proxies =' | sed -n 's/^[^"]*"\(.*\)".*/\1/p' | \
# tr ';' '\n' | grep 'PROXY' | head -1 | sed 's/PROXY //')
#
# usage:
# source proxy off

67
bin/ul11u4_build.sh Executable file
View File

@@ -0,0 +1,67 @@
#!/usr/bin/env bash
[[ "$0" == /* ]] && typeset -r PRG=$0 || typeset -r PRG=$PWD/$0
BINDIR=$(dirname "$PRG")
typeset -r BINDIR
source "${BINDIR}/lib/logging.sh"
W3M=/opt/homebrew/bin/w3m
AWK=/usr/bin/awk
CURL=/usr/bin/curl
source "${BINDIR}/lib/logging.sh"
TARGET="${1-11.4.88.0.1.207.1}"
hg_branch="s11u4_sust_087"
log::info "TARGET:${TARGET}"
URL="http://grt.us.oracle.com/grt/webservice/grtList/?gate=240&show=All&gateName=S11.4-SRU&status=4&target=${TARGET}"
log::debug $URL
output=$(/opt/homebrew/bin/w3m "$URL" -M -cols 400 -graph -dump 2>&1)
out=$(echo "$output" | $AWK '/^Details/ {found=1; next} found && NF')
if [[ -z "$out" ]];
then
log::info "There are no queued RTIs for \"${TARGET}\". Nothing to do..."
exit 0
fi
log::info "Starting build for for Ul11u4SRU"
log::info "Target: \"${TARGET}\""
JENKINS_TOKEN='1154eb0158729a7d326c1db13e7dca0cea'
JENKINS_SERVER='http://mrshughes.us.oracle.com/jenkins/'
JOB_URL="${JENKINS_SERVER}/job/Solaris_11/job/11.4/job/userland-sru/job/userland-sru-build-11.4/buildWithParameters"
log::info "Using '${JOB_URL}'"
set -x
curl -X POST "${JOB_URL}" \
--user "pnyc:${JENKINS_TOKEN}" \
--data-urlencode "Build_Label=${TARGET}" \
--data-urlencode "hg_branch=${hg_branch}" \
--data-urlencode "hguser=petr.nyc@oracle.com" \
--data-urlencode "verbose=true" \
--data-urlencode "debug=true" \
--data-urlencode "scriptdir=./solaris/userland/sru/" \
--data-urlencode "do_check_sru_cbe=true" \
--data-urlencode "prepare_work_area=true" \
--data-urlencode "do_build=true" \
--data-urlencode "merge_repo=true" \
--data-urlencode "create_sparse_repo=true" \
--data-urlencode "check_incorporations=true" \
--data-urlencode "zip_sparse_repo=true" \
--data-urlencode "create_escrow=true" \
--data-urlencode "create_foss=true" \
--data-urlencode "integration_dryrun=false" \
--data-urlencode "confirm_before_ingegration=false" \
--data-urlencode "wait_for_dock_open=true" \
--data-urlencode "delivery=true"
log::info "The job will be started here:"
log::info " ${JOB_URL%%buildWith*}"

View File

@@ -0,0 +1,67 @@
#!/usr/bin/env bash
[[ "$0" == /* ]] && typeset -r PRG=$0 || typeset -r PRG=$PWD/$0
BINDIR=$(dirname "$PRG")
typeset -r BINDIR
source "${BINDIR}/lib/logging.sh"
W3M=/opt/homebrew/bin/w3m
AWK=/usr/bin/awk
CURL=/usr/bin/curl
source "${BINDIR}/lib/logging.sh"
TARGET="${1-11.4.83.0.1.195.1}"
hg_branch="s11u4_sust_084"
log::info "TARGET:${TARGET}"
URL="http://grt.us.oracle.com/grt/webservice/grtList/?gate=240&show=All&gateName=S11.4-SRU&status=4&target=${TARGET}"
log::debug $URL
output=$(/opt/homebrew/bin/w3m "$URL" -M -cols 400 -graph -dump 2>&1)
out=$(echo "$output" | $AWK '/^Details/ {found=1; next} found && NF')
if [[ -z "$out" ]];
then
log::info "There are no queued RTIs for \"${TARGET}\". Nothing to do..."
exit 0
fi
log::info "Starting build for for Ul11u4SRU"
log::info "Target: \"${TARGET}\""
JENKINS_TOKEN='1154eb0158729a7d326c1db13e7dca0cea'
JENKINS_SERVER='http://mrshughes.us.oracle.com/jenkins/'
JOB_URL="${JENKINS_SERVER}/job/Solaris_11/job/11.4/job/userland-sru/job/userland-sru-build-11.4/buildWithParameters"
log::info "Using '${JOB_URL}'"
set -x
curl -X POST "${JOB_URL}" \
--user "pnyc:${JENKINS_TOKEN}" \
--data-urlencode "Build_Label=${TARGET}" \
--data-urlencode "hg_branch=${hg_branch}" \
--data-urlencode "hguser=petr.nyc@oracle.com" \
--data-urlencode "verbose=true" \
--data-urlencode "debug=true" \
--data-urlencode "scriptdir=./solaris/userland/sru/" \
--data-urlencode "do_check_sru_cbe=false" \
--data-urlencode "prepare_work_area=false" \
--data-urlencode "do_build=false" \
--data-urlencode "merge_repo=true" \
--data-urlencode "create_sparse_repo=true" \
--data-urlencode "check_incorporations=true" \
--data-urlencode "zip_sparse_repo=true" \
--data-urlencode "create_escrow=true" \
--data-urlencode "create_foss=true" \
--data-urlencode "integration_dryrun=false" \
--data-urlencode "confirm_before_ingegration=false" \
--data-urlencode "wait_for_dock_open=true" \
--data-urlencode "delivery=true"
log::info "The job will be started here:"
log::info " ${JOB_URL%%buildWith*}"

59
bin/ul11u4_gate_open.sh Executable file
View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
# set -x
[[ "$0" == /* ]] && typeset -r PRG=$0 || typeset -r PRG=$PWD/$0
BINDIR=$(dirname "$PRG")
typeset -r BINDIR
W3M=/opt/homebrew/bin/w3m
AWK=/usr/bin/awk
CURL=/usr/bin/curl
source "${BINDIR}/lib/logging.sh"
TARGET="${1-11.4.88.0.1.207.1}"
log::info "TARGET:${TARGET}"
URL="http://grt.us.oracle.com/grt/webservice/grtList/?gate=240&show=All&gateName=S11.4-SRU&status=1&target=${TARGET}"
log::debug $URL
output=$(/opt/homebrew/bin/w3m "$URL" -M -cols 400 -graph -dump 2>&1)
out=$(echo "$output" | awk '/^Details.*Consolidation/ {found=1; next} found')
if [[ -z "$out" ]];
then
# log::debug "output: ### $out ###"
log::info "There are no queued RTIs for \"${TARGET}\". Nothing to do..."
exit 0
fi
log::info "Opening the gate for ${TARGET}"
log::debug "Starting gate open for Ul11u4SRU"
log::debug "Target: \"${TARGET}\""
JENKINS_TOKEN='1154eb0158729a7d326c1db13e7dca0cea'
JENKINS_SERVER='http://mrshughes.us.oracle.com/jenkins/'
JOB_URL="${JENKINS_SERVER}/job/Solaris_11/job/11.4/job/userland-sru/job/userland-sru-gate-open-11.4/buildWithParameters"
log::info "Using '${JOB_URL}'"
$CURL -X POST "${JOB_URL}" \
--user "pnyc:${JENKINS_TOKEN}" \
--data-urlencode "Build_Label=${TARGET}" \
--data-urlencode "hguser=petr.nyc@oracle.com" \
--data-urlencode "dryrun=false" \
--data-urlencode "verbose=true" \
--data-urlencode "debug=true" \
--data-urlencode "scriptdir=./solaris/userland/sru/" \
--data-urlencode "do_gate_open=true"
log::info "The job will be started here:"
log::info " ${JOB_URL%%buildWith*}"

65
bin/ul11u4_integrate.sh Executable file
View File

@@ -0,0 +1,65 @@
#!/usr/bin/env bash
[[ "$0" == /* ]] && typeset -r PRG=$0 || typeset -r PRG=$PWD/$0
BINDIR=$(dirname "$PRG")
typeset -r BINDIR
source "${BINDIR}/lib/logging.sh"
W3M=/opt/homebrew/bin/w3m
AWK=/usr/bin/awk
CURL=/usr/bin/curl
source "${BINDIR}/lib/logging.sh"
TARGET="${1-11.4.83.0.1.195.1}"
log::info "TARGET:${TARGET}"
URL="http://grt.us.oracle.com/grt/webservice/grtList/?gate=240&show=All&gateName=S11.4-SRU&status=4&target=${TARGET}"
log::debug $URL
output=$(/opt/homebrew/bin/w3m "$URL" -M -cols 400 -graph -dump 2>&1)
out=$(echo "$output" | $AWK '/^Details/ {found=1; next} found && NF')
if [[ -z "$out" ]];
then
log::info "There are no queued RTIs for \"${TARGET}\". Nothing to do..."
exit 0
fi
log::info "Starting build for for Ul11u4SRU"
log::info "Target: \"${TARGET}\""
JENKINS_TOKEN='1154eb0158729a7d326c1db13e7dca0cea'
JENKINS_SERVER='http://mrshughes.us.oracle.com/jenkins/'
JOB_URL="${JENKINS_SERVER}/job/Solaris_11/job/11.4/job/userland-sru/job/userland-sru-build-11.4/buildWithParameters"
log::info "Using '${JOB_URL}'"
set -x
curl -X POST "${JOB_URL}" \
--user "pnyc:${JENKINS_TOKEN}" \
--data-urlencode "Build_Label=${TARGET}" \
--data-urlencode "hguser=petr.nyc@oracle.com" \
--data-urlencode "verbose=true" \
--data-urlencode "debug=true" \
--data-urlencode "scriptdir=./solaris/userland/sru/" \
--data-urlencode "do_check_sru_cbe=false" \
--data-urlencode "prepare_work_area=false" \
--data-urlencode "do_build=false" \
--data-urlencode "merge_repo=false" \
--data-urlencode "create_sparse_repo=false" \
--data-urlencode "check_incorporations=false" \
--data-urlencode "zip_sparse_repo=false" \
--data-urlencode "create_escrow=false" \
--data-urlencode "create_foss=false" \
--data-urlencode "integration_dryrun=false" \
--data-urlencode "confirm_before_ingegration=false" \
--data-urlencode "wait_for_dock_open=true" \
--data-urlencode "delivery=true"
log::info "The job will be started here:"
log::info " ${JOB_URL%%buildWith*}"

82
bootstrap.sh Executable file
View File

@@ -0,0 +1,82 @@
#!/usr/bin/env bash
set -x
check_installed() {
_pkgs=("$@")
all_installed=true
for pkg in "${_pkgs[@]}"; do
if ! command -v "$pkg" > /dev/null 2>&1; then
all_installed=false
break
fi
done
$all_installed && return 0 || return 1
}
install_packages() {
# List of packages to install
packages=(zsh git)
if ! check_installed "${packages[@]}"; then
# Determine which package manager is available
if check_installed apt; then
echo "Using apt to install packages..."
sudo apt update
sudo apt install -y "${packages[@]}"
elif check_installed dnf; then
echo "Using dnf to install packages..."
sudo dnf install -y "${packages[@]}"
elif check_installed yum; then
echo "Using yum to install packages..."
sudo yum install -y "${packages[@]}"
elif check_installed brew; then
echo "Using Homebrew to install packages..."
brew install "${packages[@]}"
else
echo "No supported package manager found (apt, dnf, yum, brew)."
return 1
fi
fi
}
clone_repos () {
git clone --bare https://git.meinlschmidt.org/jetpac/dotfiles.git ~/.cfg
# alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
git --git-dir=$HOME/.cfg config --local status.showUntrackedFiles no
git --git-dir=$HOME/.cfg --work-tree=$HOME checkout
# install oh-my-zsh
curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh > /tmp/install_ohmyzsh.sh
bash /tmp/install_ohmyzsh.sh --unattended --skip-chsh --keep-zshrc
# powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# tmux tpm plugin manager
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# plug for installing vim plugins
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
}
configure_vim() {
vim +PlugInstall +qall
}
configure_tmux() {
echo "run tmux, prefix + I installs all plugins (needs to have proxies set)"
echo "export proxies and run $HOME/.tmux/plugins/tpm/bin/install_plugins all"
}
# Call the function to execute the installation
install_packages
clone_repos
configure_vim
configure_tmux
# vim: foldmethod=marker:foldmarker={,}:expandtab:sw=4:ts=4: