Compare commits

..

54 Commits

Author SHA1 Message Date
Petr Nyc
b35293a9f0 config tweaks 2026-02-13 09:46:37 +01:00
Petr Nyc
4ee18f77e0 codex config 2026-02-09 09:52:23 +01:00
Petr Nyc
42b3c7d306 before security stuff reboot 2026-02-04 14:23:01 +01:00
Petr Nyc
b1885f5463 laptop is discharging 2026-01-30 21:42:47 +01:00
Petr Nyc
db6a8c0de2 aidermacs layer config 2026-01-22 15:51:03 +01:00
Petr Nyc
d0b359d475 added solaris focused inbox 2026-01-22 14:51:06 +01:00
Petr Nyc
97ed53041c more notmuch-hello finetuning 2026-01-21 22:27:37 +01:00
Petr Nyc
59a00dbb6e notmuch-hello finetuning 2026-01-21 22:00:54 +01:00
Petr Nyc
84741f68ed notmuch - notmuch-hello & retag-email changes 2026-01-21 21:48:34 +01:00
Petr Nyc
36635268be notmuch-hello config 2026-01-21 21:46:26 +01:00
Petr Nyc
cc5e1a21e3 homebrew config 2026-01-21 14:40:08 +01:00
Petr Nyc
558efec514 notmuch hello config 2026-01-19 22:28:48 +01:00
Petr Nyc
b789f4afe9 notmuch email tagging 0.2 2026-01-19 22:28:48 +01:00
Petr Nyc
a3a021ee18 notmuch email tagging 0.1 2026-01-19 22:26:32 +01:00
Petr Nyc
3c76055b05 notmuch tweaks 2026-01-19 21:10:13 +01:00
Petr Nyc
f4e8efeb8f added conda layer 2026-01-18 21:13:10 +01:00
Petr Nyc
6aef629cc2 dockerfile and terraform syntax checking 2026-01-18 17:26:59 +01:00
Petr Nyc
d80bca7f00 Syntax checking for python 2026-01-18 12:20:03 +01:00
Petr Nyc
ab11fc8566 custom mods 2026-01-18 12:20:03 +01:00
Petr Nyc
516f5cd88a magit-status-dotfiles function bug fix 2026-01-18 12:20:03 +01:00
Petr Nyc
866eed3a57 commented out org-calendar - doesn't work to my satisfaction 2026-01-18 12:20:03 +01:00
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
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
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
36 changed files with 12404 additions and 213 deletions

31
.aider.conf.yml Normal file
View File

@@ -0,0 +1,31 @@
#############
# Main model:
## Specify the model to use for the main chat
# model: oca/gpt5
model: oca/gpt-5.1-codex
## Enable/disable automatic acceptance of architect changes (default: True)
#auto-accept-architect: true
weak-model: oca/llama4
##################
# Output settings:
## Use colors suitable for a dark terminal background (default: False)
dark-mode: true
## Enable/disable auto commit of LLM changes (default: True)
auto-commits: false
############
# Analytics:
## Enable/disable analytics for current session (default: random)
analytics: false
## Permanently disable analytics
analytics-disable: true

80
.codex/config.toml Normal file
View File

@@ -0,0 +1,80 @@
# doc: https://developers.openai.com/codex/config-advanced
# https://developers.openai.com/codex/config-reference
approval_policy = "on-failure"
preferred_auth_method = "apikey"
# model = "oca/gpt-5-codex"
# profile = "gpt-5-codex"
# model = "oca/gpt-5.1-codex"
# profile = "gpt-5-1-codex"
model = "oca/gpt-5.1-codex-mini"
profile = "gpt-5-1-codex-mini"
web_search_request = true
trust_level = "trusted"
sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = true
writable_roots = [ "/Users/jetpac/.codex/skills" ]
[analytics]
enabled = false
[model_providers.oca-responses]
base_url = "https://code-internal.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm"
http_headers = { "client" = "codex-cli", "client-version" = "0" }
model = "oca/gpt5"
name = "Oracle Code Assist Responses"
wire_api = "responses"
[model_providers.oca-chat]
base_url = "https://code-internal.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm"
http_headers = { "client" = "codex-cli", "client-version" = "0" }
model = "oca/gpt5"
name = "Oracle Code Assist Chat"
wire_api = "responses"
[profiles.grok-4]
model = "oca/grok4"
model_provider = "oca-chat"
review_model = "oca/grok4"
[profiles.grok-4-fast-reasoning]
model = "oca/grok4-fast-reasoning"
model_provider = "oca-chat"
review_model = "oca/grok4-fast-reasoning"
[profiles.grok-code-fast-1]
model = "oca/grok-code-fast-1"
model_provider = "oca-chat"
review_model = "oca/grok-code-fast-1"
[profiles.gpt-4-1]
model = "oca/gpt-4.1"
model_provider = "oca-chat"
review_model = "oca/gpt-4.1"
[profiles.gpt-5]
model = "oca/gpt5"
model_provider = "oca-responses"
review_model = "oca/gpt5"
[profiles.gpt-5-1]
model = "oca/gpt-5.1"
model_provider = "oca-chat"
review_model = "oca/gpt-5.1"
[profiles.gpt-5-2]
model = "oca/gpt-5.2"
model_provider = "oca-responses"
review_model = "oca/gpt-5.2"
[profiles.gpt-5-codex]
model = "oca/gpt-5-codex"
model_provider = "oca-responses"
review_model = "oca/gpt-5-codex"
personality = "pragmatic"
[profiles.gpt-5-1-codex]
model = "oca/gpt-5.1-codex"
model_provider = "oca-responses"
review_model = "oca/gpt-5.1-codex"
personality = "pragmatic"
model_reasoning_effort = "high"
[profiles.gpt-5-1-codex-mini]
model = "oca/gpt-5.1-codex-mini"
model_provider = "oca-responses"
review_model = "oca/gpt-5.1-codex-mini"
personality = "pragmatic"

View File

@@ -8,20 +8,23 @@ import = ["~/.config/alacritty/themes/themes/solarized_dark.toml"]
[font] [font]
## MesloLGS font ## MesloLGS font
# normal.family = "MesloLGS Nerd Font Mono" normal.family = "MesloLGS Nerd Font Mono"
# bold.family = "MesloLGS Nerd Font Mono" bold.family = "MesloLGS Nerd Font Mono"
# italic.family = "MesloLGS Nerd Font Mono" italic.family = "MesloLGS Nerd Font Mono"
# bold_italic.family = "MesloLGS Nerd Font Mono" bold_italic.family = "MesloLGS Nerd Font Mono"
# size = 18
# offset.x = 1
# JetBrains Nerd font
normal.family = "JetBrainsMono NF"
bold.family = "JetBrainsMono NF SemiBold"
italic.family = "JetBrainsMono NFM Thin"
bold_italic.family = "JetBrainsMono NFM"
size = 18 size = 18
offset.x = 1 offset.x = 1
# set apple font smoothing for alacritty:
# defaults write org.alacritty AppleFontSmoothing -int 0
# 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] [window]
dynamic_padding = true dynamic_padding = true
@@ -49,7 +52,8 @@ history = 20000
# key bidnings # key bidnings
# use xxd to find codes of key presses # use xxd to find unicode codes of key presses
# use cat -v to find escape codes of various key combos
[keyboard] [keyboard]
bindings = [ bindings = [

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=-+*\\,.;:&> editor_stop_format_chars=-+*\\,.;:&>
mcview_eof= mcview_eof=
skin=solarized-dark-256color skin=solarized-dark-256color
shell_directory_timeout=900
filepos_max_saved_entries=1024
[Layout] [Layout]
output_lines=0 output_lines=0
left_panel_size=75 left_panel_size=86
top_panel_size=0 top_panel_size=0
message_visible=true message_visible=true
keybar_visible=true keybar_visible=true
@@ -114,6 +116,11 @@ clipboard_paste=
base_color= base_color=
xterm-256color= xterm-256color=
color_terminals= color_terminals=
alacritty=
xterm=
rxvt-256color=
screen-256color=
xterm-24bit=
[Panels] [Panels]
show_mini_info=true show_mini_info=true
@@ -139,7 +146,7 @@ select_flags=6
simple_swap=false simple_swap=false
[Panelize] [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 *.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 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

@@ -25,6 +25,7 @@
diffc = "!f() { git diff ${1}^1 ${1} -- $2; }; f" diffc = "!f() { git diff ${1}^1 ${1} -- $2; }; f"
vimdiffc = "!f() { git vimdiff ${1}^1 ${1} -- $2; }; f" vimdiffc = "!f() { git vimdiff ${1}^1 ${1} -- $2; }; f"
cat = show cat = show
webui = !/Users/jetpac/.git-webui/release/libexec/git-core/git-webui
[user] [user]
name = Petr Nyc name = Petr Nyc
@@ -42,3 +43,9 @@
; modulePath = /usr/lib/apache2/modules ; modulePath = /usr/lib/apache2/modules
[init] [init]
defaultBranch = master defaultBranch = master
[webui]
autoupdate = true
; [color]
; ui = auto
[http]
sslVerify = false

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

@@ -104,11 +104,12 @@
timewarrior # timewarrior tracking status (https://timewarrior.net/) timewarrior # timewarrior tracking status (https://timewarrior.net/)
taskwarrior # taskwarrior task count (https://taskwarrior.org/) taskwarrior # taskwarrior task count (https://taskwarrior.org/)
cpu_arch # CPU architecture cpu_arch # CPU architecture
battery
time # current time time # current time
# =========================[ Line #2 ]========================= # =========================[ Line #2 ]=========================
newline newline
# ip # ip address and bandwidth usage for a specified network interface # ip # ip address and bandwidth usage for a specified network interface
public_ip # public IP address # public_ip # public IP address
proxy # system-wide http/https/ftp proxy proxy # system-wide http/https/ftp proxy
# battery # internal battery # battery # internal battery
# wifi # wifi speed # wifi # wifi speed
@@ -553,7 +554,7 @@
#######################[ background_jobs: presence of background jobs ]####################### #######################[ background_jobs: presence of background jobs ]#######################
# Don't show the number 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. # Background jobs color.
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=70 typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=70
# Custom icon. # Custom icon.
@@ -990,7 +991,7 @@
# Nvm color. # Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=70 typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
# Custom icon. # 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: node.js environment (https://github.com/ekalinin/nodeenv) ]############
# Nodeenv color. # Nodeenv color.
@@ -1536,7 +1537,7 @@
# Battery pictograms going from low to high level of charge. # 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' 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. # 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: wifi speed ]#####################################
# WiFi color. # 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

1110
.spacemacs

File diff suppressed because it is too large Load Diff

19
.ssh/config.oci Normal file
View File

@@ -0,0 +1,19 @@
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
Host oci.private.devops.scmservice.us-phoenix-1.oci.oracleiaas.com
PKCS11Provider /Library/OpenSC/lib/opensc-pkcs11.so
User pnyc@bmc_operator_access

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-sensible'
set -g @plugin 'tmux-plugins/tmux-sidebar' set -g @plugin 'tmux-plugins/tmux-sidebar'
set -g @plugin 'tmux-plugins/tmux-pain-control' set -g @plugin 'tmux-plugins/tmux-pain-control'
set -g @plugin 'tmux-plugins/tmux-logging' 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' set -g @plugin 'tmux-plugins/tmux-resurrect' # https://github.com/tmux-plugins/tmux-resurrect
# https://github.com/tmux-plugins/tmux-resurrect
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @resurrect-capture-pane-contents 'on' set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-processes 'ssh neomutt mbsync' set -g @resurrect-processes 'ssh neomutt mbsync vim'
# https://github.com/tmux-plugins/tmux-continuum set -g @plugin 'tmux-plugins/tmux-continuum' # https://github.com/tmux-plugins/tmux-continuum
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'seebi/tmux-colors-solarized' 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 # too wild, some shortcuts like meta-tab/meta-number are nice though
# set -g @plugin 'ek9/tmux-vim-bindings' # 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 'light'
set -g @colors-solarized 'dark' 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 # Change prefix to C-a
# C-a hex value: 0x01 # C-a hex value: 0x01
@@ -70,9 +72,14 @@ set -g pane-base-index 1
set -ag terminal-overrides ",xterm-256color:Tc" set -ag terminal-overrides ",xterm-256color:Tc"
# synchronize panes # synchronize panes
bind e setw synchronize-panes ; display "Sync #{?pane_synchronized,ON,OFF}" 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 # 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) # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm' 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

14
.vimrc
View File

@@ -79,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 " " 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_sh_shellcheck_args = "-x"
" let g:syntastic_mode_map = { let g:syntastic_mode_map = {
" \ "mode": "active", \ "mode": "passive",
" \ "active_filetypes": [], \ "active_filetypes": [ "bash" ],
" \ "passive_filetypes": ["sh, yaml"] } \ "passive_filetypes": ["sh, yaml"] }
set modeline set modeline
set modelines=5 set modelines=5
@@ -108,14 +108,20 @@ endif
" solarized config " solarized config
set termguicolors set termguicolors
set background=dark " or light set background=dark " or light
" colorscheme solarized " colorscheme solarized
colorscheme darcula
" Check if the color scheme file is available before applying it " Check if the color scheme file is available before applying it
if exists("g:plugs['darcula']") && filereadable(expand("~/.vim/plugged/darcula/colors/darcula.vim")) if exists("g:plugs['darcula']") && filereadable(expand("~/.vim/plugged/darcula/colors/darcula.vim"))
colorscheme darcula colorscheme darcula
endif endif
hi Visual term=reverse cterm=reverse guibg=Grey hi Visual term=reverse cterm=reverse guibg=Grey
" open unfolded
set foldlevel=99
" copilot config " copilot config
imap <silent> <C-j> <Plug>(copilot-next) 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

87
.zshenv
View File

@@ -2,16 +2,40 @@ set -o vi
export LC_ALL=en_US.UTF-8 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/:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/jetpac/work/flutter/bin:$HOME/.rd/bin:$HOME/bin:$PATH:$HOME/.fzf/bin
# homebrew config
# output of brew shellenv
export HOMEBREW_PREFIX="/opt/homebrew";
export HOMEBREW_CELLAR="/opt/homebrew/Cellar";
export HOMEBREW_REPOSITORY="/opt/homebrew";
fpath[1,0]="/opt/homebrew/share/zsh/site-functions";
eval "$(/usr/bin/env PATH_HELPER_ROOT="/opt/homebrew" /usr/libexec/path_helper -s)"
[ -z "${MANPATH-}" ] || export MANPATH=":${MANPATH#:}";
export INFOPATH="/opt/homebrew/share/info:${INFOPATH:-}";
alias oe='open /Applications/Emacs.app' alias oe='open /Applications/Emacs.app'
# Force mc to use bash for its subshell
alias mc='SHELL=/bin/bash mc'
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME' alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
alias -g N="2>&1 " alias -g N="2>&1 "
alias pig='ping' alias pig='ping'
# export PATH=$HOME/.rd/bin # 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 # for gems installed in my home direcotry
# inspiration: https://guides.cocoapods.org/using/getting-started.html#installation # inspiration: https://guides.cocoapods.org/using/getting-started.html#installation
@@ -68,4 +92,63 @@ export seznam6='2a02:598:2::1222'
export OPENAI_API_KEY='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' export OPENAI_API_KEY='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'
# for flutter # 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'

128
.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" source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi 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 # doesn't work well on remote hosts
# [[ -f .iterm2_shell_integration.zsh ]] && source .iterm2_shell_integration.zsh # [[ -f .iterm2_shell_integration.zsh ]] && source .iterm2_shell_integration.zsh
@@ -53,7 +77,7 @@ ZSH_THEME="powerlevel10k/powerlevel10k"
# DISABLE_LS_COLORS="true" # DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title. # 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. # Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true" # 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. # 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" # 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) # 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 # Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories # 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? # Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder # 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? # Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/ # Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse) # Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup. # 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 kubectl helm) 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 # colorize - adds ccat and cless
# common-aliases: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/common-aliases # common-aliases: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/common-aliases
# themes: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes # themes: https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/themes
@@ -164,14 +227,27 @@ fi
# zsh history is too short # zsh history is too short
# - https://unix.stackexchange.com/questions/273861/unlimited-history-in-zsh # - https://unix.stackexchange.com/questions/273861/unlimited-history-in-zsh
HISTFILE=~/.zsh_history
# inspiration taken from yt video:
# https://youtu.be/ud7YxC33Z3w
HISTSIZE=999999999 HISTSIZE=999999999
HISTFILE=~/.zsh_history
SAVEHIST=$HISTSIZE 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 >>> # >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !! # !! Contents within this block are managed by 'conda init' !!
@@ -188,11 +264,47 @@ fi
unset __conda_setup unset __conda_setup
# <<< conda initialize <<< # <<< 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 # for cocoapods
export PATH=/opt/homebrew/opt/ruby/bin:$PATH export PATH=/opt/homebrew/opt/ruby/bin:$PATH
export GEM_HOME=$HOME/.gem export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$HOME/.gem/ruby/3.3.0/bin:$PATH 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)
### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
# export PATH="/Users/jetpac/.rd/bin:$PATH"
### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)

View File

@@ -89,12 +89,6 @@
"Text" : "01 6c", "Text" : "01 6c",
"Version" : 1 "Version" : 1
}, },
"0x6e-0x80000-0x2d" : {
"Action" : 11,
"Label" : "",
"Text" : "01 6e",
"Version" : 1
},
"0x70-0x80000-0x23" : { "0x70-0x80000-0x23" : {
"Action" : 11, "Action" : 11,
"Label" : "", "Label" : "",

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 set -x
# function to get PARENT_WS as a parameter # 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 if [[ -z $1 ]]; then
PARENT_WS='ssh://pnyc@dabel.us.oracle.com//workspace/pnyc/solaris-reviews/secure-integrate/userland11.4' # PARENT_WS='ssh://pnyc@andel.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/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 else
PARENT_WS=$1 PARENT_WS=$1
fi fi
@@ -24,7 +26,9 @@ SLACK_CHANNEL='@pnyc'
DIR=$(pwd) DIR=$(pwd)
REPO=${PARENT_WS##*/} # userland11.4 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 MV=/bin/mv
RM=/bin/rm RM=/bin/rm
CP=/bin/cp 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' # when the first positional command line parameter is 'on'
# and unsets them when the first positional command line parameter is 'off' # 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: # usage:
# source proxy off # source proxy off

492
bin/retag-email Executable file
View File

@@ -0,0 +1,492 @@
#!/usr/bin/env bash
set -x
set -e
#
# script to tag notmuch emails based on my preference
#
# inspired by https://forsooth.org/posts/email-in-spacemacs/index.html
#
#
# tags: important solaris oci osd
#
#
notmuch tag +sent -unread 'folder:/[Ss]ent.*/'
notmuch tag +me to:petr.nyc@oracle.com
# idea for logic
# sort by projects, don't unset new/read tag
# at the very bottom, unset the new/read tag based on if I'm interested in the latest
# status for the project / logs for the project and so on - good for stepping for someone
# General sorting rules not specific to projects
################################################################################
notmuch tag +important -- \
tag:new AND "
(
subject:/[Cc]omplete.*[Tt]raining/ OR
subject:/.*Reminder:?/ OR
from:elanor.cz OR
from:payroll_cz OR
from:instructor.cz OR
subject:Expense Report Approval OR
subject:/[Aa]ction.[Nn]eeded/ OR
from:permissions.oci.oraclecloud.com
)"
notmuch tag +general \
tag:new AND "(
subject:'Oracle Open Roles' OR
from:tania.c.cortez OR
from:info@eduagroup.cz OR
subject:'FYI: Expense Reimbursement'
)"
notmuch tag +calendar \
tag:new AND mimetype:text/calendar
# Solaris
################################################################################
# general solaris
notmuch tag +solaris +logs +mrspatmore -- \
tag:new AND "(
subject:/.*BugDB.*release.deployment/ OR
subject:import/sig_ci/mercurial/mrspatmore OR
(from:vcap_admin_ww_grp AND subject:/WARNING:|INFO:/)
)"
notmuch tag +solaris +logs \
tag:new AND 'subject:Next IDR ID is'
notmuch tag +solaris \
tag:new AND "(
from:deirdre.williams@oracle.com AND subject:'Sustaining Meeting'
)"
# phabricator
notmuch tag +phabricator +logs -me \
tag:new AND \
from:noreply@scapen-phabricator.us.oracle.com
notmuch tag +s11u3-sru +on \
tag:new AND "(
tag:phabricator AND
subject:/rONCLOSED|rONMAN|rONSRC/ and subject:/11.3/
)"
notmuch tag +s11u3-sru +userland \
tag:new AND "(
tag:phabricator AND
subject:/\[Diffusion\].*rUSERLAND.*11\.3/
)"
notmuch tag +userland -unread -inbox \
tag:new AND "(
from:mailman-owner@userland.us.oracle.com
)"
notmuch tag +s11u4-sru +userland \
tag:new AND "(
tag:phabricator AND
subject:/\[Diffusion\].*rUSERLAND.*11\.4/
)"
notmuch tag +mrspatmore \
tag:new AND "(
tag:phabricator AND \
subject:/\[Diffusion\].*rMRSPATMORE/
)"
notmuch tag +mrspatmore \
tag:new AND "(
tag:phabricator AND \
subject:/\[Diffusion\].*rREJENKINSLIB/
)"
notmuch tag +IPS \
tag:new AND "(
tag:phabricator AND \
( ( subject:/\[Differential\]/ and body:REPOSITORY NEAR/1 rPKG ) OR
( subject:/\[Diffusion\]/ and body:COMMITS NEAR rPKG )
)
)"
# akidr
notmuch tag +akidr +logs -unread \
tag:new AND "(
from:vcap_admin_ww_grp AND
subject:'Docker with ARU uploadcli has been automatically frozen'
)"
notmuch tag +akidr \
tag:new AND "(
to:'bot@artas' OR
from:'bot@artas' OR
to:'fishworks-gk_ww_grp@oracle.com' OR
subject:'PASS s11_4aksruidr' OR
subject:'Build started for AK IDR' OR
subject:'New AK IDR request for'
)"
notmuch tag +akidr +logs -unread \
tag:new AND "(
from:'vcap_admin_ww_grp@oracle.com' AND \
subject:'ARU Uploads has been frozen for' AND \
subject:'this is a reminder please review'
)"
notmuch tag +akidr +logs +important \
tag:new AND "(
(from:sig-devops_ww_grp OR from:adam.paul) AND \
subject:/8\.\8.*idr.*DC.*has.failed/
)"
# WebRTI
notmuch tag +webrti \
tag:new AND "(
body:Consolidation: AND
body:RTI: AND
subject:WebRTI:
)"
notmuch tag +important \
tag:new AND "(
tag:webrti AND
to:petr.nyc and
subject:/NEED.APPROVAL.*WebRTI/
)"
# BugDB
notmuch tag +bugdb \
tag:new AND "(
from:ociapp-notifications and subject:/ER|Bug/
)"
# ON
notmuch tag +on tag:new AND "(tag:webrti AND body:Consolidation: NEAR/1 on"
notmuch tag +s11u3-sru tag:new AND "(tag:webrti AND tag:on AND body:Gates: S11.SRU.Sustaining)"
notmuch tag +s11u3-sru tag:new AND "(subject:/Solaris.*11.3.*[Rr]eleased/)"
notmuch tag +s11u4-sru tag:new AND "(subject:/Solaris.*11.4.*[Rr]eleased/)"
notmuch tag +s11u4-sru +logs +on \
tag:new and 'from:/root@sig-on-sru11-3-[xs]01/'
notmuch tag +s11u4-sru tag:new AND "(
tag:webrti AND tag:on AND body:Gates: 11.4-SRU
)"
notmuch tag +on +pushlog \
tag:new AND \
subject:'/export.on-gate.*push/'
notmuch tag +on +trunk \
tag:new AND "(
to:gk@hubbins OR to:gatekeeper@hubbins OR to:hg@hubbins OR
from:gatekeeper@hubbins
)"
notmuch tag +important \
tag:new AND "(
tag:on and subject:error and (from:gatekeeper@hubbins or to:gatekeeper@hubbins)
)"
notmuch tag +important +s11u4-sru +on \
tag:new AND "(
from:sig-devops_ww_grp AND
subject:/INPUT.NEEDED.*11.4|s11u4_sust.*Ready.for/
)"
notmuch tag +trunk \
tag:new AND "(
tag:on AND tag:pushlog body:Branch: default
)"
notmuch tag +s11u3-sru tag:new AND "(
tag:on AND tag:pushlog body:Branch: s11u3-sru
)"
notmuch tag +on +trunk +logs \
tag:new AND \
'(to:gk-builds@hubbins.us.oracle.com OR to:gk-splice-builds@hubbins.us.oracle.com) AND body:"Build summary"'
notmuch tag +on +trunk +logs -unread \
tag:new AND "(
from:noaccess AND
subject:/boston|eleven|hopper|on-gate-test|severin|smalls|stumpy|zero/
)"
notmuch tag +on +trunk +jenkins tag:new AND to:gk-jenkins@hubbins.us.oracle.com
notmuch tag +on +trunk +logs \
tag:new AND "(
(to:gk@hubbins.us.oracle.com and subject:'zpool report for') OR
(to:on-parfait@hubbins and subject:'Parfait Differences')
)"
notmuch tag +on +s11u4-sru +logs +important \
tag:new AND "(
from:gk@hubbins.us.oracle.com AND
subject:'New SRU branch from trunk'
)"
notmuch tag +on +trunk +s11u4-sru +s11u3-sru +logs +important \
tag:new AND subject:on-repo-hooks
notmuch tag +on +s11u4-sru +important +logs \
tag:new AND 'subject:/URGENT:.production.build-11.4.*/'
notmuch tag +on +pushlog \
tag:new AND to:hubbins AND 'subject:/.export\/on-gate.*push/'
notmuch tag +on +s11u4-sru +important +logs \
tag:new AND subject:"fail" AND subject:"Solaris_11/11.4/ON" AND subject:"11.4"
notmuch tag +on +s11u4-sru +important +logs \
tag:new AND subject:"fail" AND 'subject:/on-11u4-bld/'
notmuch tag +on +gkap +logs +s11u4-sru \
tag:new AND "(
from:s11autoport_grp@oracle.com AND
(subject:'periodic GKAP push analysis') or subject:'GK Backport testing has completed'
)"
notmuch tag +on +gkap +logs +s11u4-sru \
"tag:new AND tag:inbox AND (subject:GKAP or subject:GKAB)"
notmuch tag +on +gkap +logs +s11u4-sru \
"tag:new AND to:rpe_gk_backport_ww_grp and subject:/pass.*on11u4.*scapen/"
notmuch tag +on +gkap +logs +s11u4-sru \
"tag:new AND from:blduser@bld.us.oracle.com AND to:rpe_gk_backport_ww_grp"
notmuch tag +on +gkap +logs +s11u4-sru \
"tag:new AND from:rpe_sme_ww_grp AND NOT
(subject:/INTERIM.GK.Backport.*/ OR subject:/New.GK.backport.testing.has.started/ OR
subject:/^.*GK.Backport.testing.has.completed/ OR
subject:/INTERIM.GK.Backport.report.for/)"
# notmuch tag +on +gkap +logs +s11u4-sru \
# tag:new AND from:rpe_sme_ww_grp@oracle.com AND subject:"/INTERIM.GK.Backport.report.for.GKAP_11.4.*/"
# notmuch tag +on +gkap +logs +s11u4-sru \
# "tag:new AND subject:/.*Build.*GKAB.*Completed/"
# notmuch tag +on +gkap +logs +s11u4-sru \
# "tag:new AND from:rpe_gk_backport_ww_grp AND (subject:pass or subject:successfull or subject:successful)"
notmuch tag +on +logs +s11u4-sru \
tag:new AND "(
subject:/on-gate.s11u4..*.packages.ready/ OR
subject:/pass:.*Solaris_11/11.4/ON/production.build-11.4.*/ OR
subject:/^pass.*11.4..*.11.4.*..on-11u4-bld-[xs]./
)"
notmuch tag +solaris +logs -unread \
tag:new AND 'subject:/\[\/var\/tmp\/repo_cache\/PKG\]/'
notmuch tag +on +important \
tag:new AND \
to:solaris_sru_gk_ww_grp AND \
subject:FAILED
# userland
notmuch tag +userland tag:new AND "subject:GATE OPEN" AND "from:solaris_sru_gk_ww_grp" AND body:userland
notmuch tag +userland tag:new AND tag:webrti AND "body:/Consolidation.*userland/"
notmuch tag +s11u4-sru tag:new AND tag:userland AND tag:webrti AND body:"/Gates:.*S11.4-SRU/"
notmuch tag +trunk tag:new AND tag:userland AND tag:webrti AND body:"/Gates:.*solaris-trunk/"
notmuch tag +userland tag:new AND to:userland-s11-sru-notify
notmuch tag +s11u3-sru \
tag:new AND \
tag:userland AND \
subject:'push to s11u3-sru'
notmuch tag +s11u4-sru \
tag:new AND \
tag:userland AND \
subject:'/.*push.to.s11u4_sust.*/'
# cluster
notmuch tag +cluster \
tag:new AND "(
tag:webrti AND (body:Consolidation: sc-geo or body:Consolidation: suncluster) OR
subject:'SC4.4 SRU Nightly' OR from:'SC Build Engineering'
)"
notmuch tag +important \
tag:new AND \
tag:cluster and 'subject:/[Ff]ail/'
# IPS
notmuch tag +IPS \
tag:new AND \
subject:'[Differential]' AND body:'rPKG Solaris Image Packaging System'
# RE
notmuch tag +RE \
tag:new AND "(
to:solaris-re_us_grp OR
to:ips_tracker_support_ww_grp OR
from:ips_tracker_support_ww_grp
)"
notmuch tag +s11u3-sru \
tag:new AND \
tag:re AND \
'subject:/Oracle.Solaris.11\.3/'
notmuch tag +RE +s11u4-sru \
tag:new AND \
tag:RE AND \
'subject:/.*IDRs.*s11_4sru.*/'
notmuch tag +s11u4-sru \
tag:new AND \
tag:RE AND \
'subject:/RTI.*withdrawal.notification/' AND \
body:'11.4'
notmuch tag +s11u4-sru \
tag:new AND \
tag:RE AND \
'subject:/S11.4.*repo.ready.for.testing/'
notmuch tag +s11u3-sru \
tag:new AND \
tag:RE AND \
'subject:/.*IDRs.*s11_3sru.*/'
notmuch tag +cluster \
tag:new AND \
tag:re AND \
'(subject:/.*IDRs.*cluster.*/ OR subject:/SRU.Build.Package.Profile.successfully.created.for.solariscluster.*/)'
notmuch tag +akidr \
tag:new AND \
tag:RE AND \
'subject:/.*Tracker.FYI.*IDR.*state.change/'
notmuch tag +RE s11u4-sru \
tag:new AND \
subject:'[Differential]' AND body:'Repository rRETRUNK Release Engineering Trunk Gate'
notmuch tag +RE +logs -unread \
tag:new AND "(
from:noaccess AND
subject:/ipkg[1-9]/
)"
notmuch tag +solaris \
tag:new AND "(
tag:akidr OR
tag:bugdb OR
tag:cluster OR
tag:IPS OR
tag:on OR
tag:phabricator OR
tag:RE OR
tag:trunk OR
tag:userland OR
tag:webrti
)"
# end of Solaris
################################################################################
# OCI / OSD
################################################################################
# seatch term to include in each search
# commented out for debugging
# ST='tag:new'
ST="date:1/1/2026.."
notmuch tag +osd \
"$ST" AND "(
to:osd-devops_ww_grp@oracle.com OR \
subject:[gbu confluence]
)"
notmuch tag +osd +brownbag \
"$ST" AND 'subject:/[Bb]rown.[Bb]ag/'
notmuch tag +deployment-ticket "$ST" AND tag:osd AND subject:"New OSD deployment ticket:"
notmuch tag +ocean-incident "$ST" AND tag:osd AND subject:"[Ocean Incident]"
notmuch tag +alarm "$ST" AND tag:osd AND subject:'Alarm: '
notmuch tag +osd "$ST" AND subject:'InfraCloud JIRA'
notmuch tag +osd +sgd \
"$ST" AND subject:'SGD'
notmuch tag +oci +announcement \
"$ST" AND subject:'A PSA'
# PRs for approval
notmuch tag +osd +PRs \
"$ST" AND subject:'ACTION REQUIRED - Peer approval needed for Change Request' AND \
body:'/Service Owner:.*Desktop as a Service/'
# PRs from other projects
notmuch tag +oci +CCAT-PRs \
"$ST" AND \
subject:'ACTION REQUIRED - Peer approval needed for Change Request' AND \
body:'/Service Owner:Compute Cloud at Customer/'
# OCI production regions
notmuch tag +oci +osd +important +region-ga \
"$ST" AND \
"from:/OCI-REGION-BUILD.*/"
# Change Freeze
notmuch tag +oci +important +changefreeze \
"$ST" AND \
"subject:/Oracle.Change.Management.Alert/"
# ODAAS Deployments Calendar
notmuch tag +osd +calendar \
"$ST" AND \
"subject:/\[confluence\].*created.a.new|updated.a.*event.in.the.*OSD.RE.Deployments.*calendar/"
# ODAAS PRs
notmuch tag +osd +PRs\
"$ST" AND \
"subject:/ODAAS\/.*Pull.request.*:/"
notmuch tag +oci tag:new AND tag:osd
################################################################################
# I don't want these in my focused inbox
################################################################################
# passed logs for on trunk
notmuch tag -inbox -unread tag:on AND tag:trunk AND tag:logs AND subject:"pass"
# trunk RTIs,pushlog,jenkins logs
notmuch tag -inbox -unread tag:trunk and tag:webrti
notmuch tag -inbox -unread tag:on AND tag:trunk AND tag:pushlog
notmuch tag -inbox -unread tag:on AND tag:trunk AND tag:jenkins
# ON GKAP notifications
notmuch tag -inbox -unread tag:new AND tag:gkap AND tag:logs and not subject:failed
# osd ocean incidents, alarms
notmuch tag -inbox -unread tag:osd AND '(tag:ocean-incident or tag:alarm)'
# emails with subject:"REGION BUILD ALERT]" are important to watch
# ================================================================================
# the very last part of this - remove the new tag
notmuch tag -new tag:new

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*}"