pwd after, os release

pull/3/head
Simon Let 7 years ago
parent 09be7b3ca7
commit ad5fe3c0c0
  1. 52
      collect/resh-collect.go
  2. 8
      common/resh-common.go
  3. 14
      shellrc.sh

@ -44,6 +44,7 @@ func main() {
login := flag.String("login", "", "$LOGIN") login := flag.String("login", "", "$LOGIN")
path := flag.String("path", "", "$PATH") path := flag.String("path", "", "$PATH")
pwd := flag.String("pwd", "", "$PWD - present working directory") pwd := flag.String("pwd", "", "$PWD - present working directory")
pwdAfter := flag.String("pwdAfter", "", "$PWD after command")
shellEnv := flag.String("shellEnv", "", "$SHELL") shellEnv := flag.String("shellEnv", "", "$SHELL")
term := flag.String("term", "", "$TERM") term := flag.String("term", "", "$TERM")
@ -68,6 +69,14 @@ func main() {
timezoneBefore := flag.String("timezoneBefore", "", "") timezoneBefore := flag.String("timezoneBefore", "", "")
timezoneAfter := flag.String("timezoneAfter", "", "") timezoneAfter := flag.String("timezoneAfter", "", "")
osReleaseId := flag.String("osReleaseId", "", "/etc/os-release ID")
osReleaseVersionId := flag.String("osReleaseVersionId", "",
"/etc/os-release ID")
osReleaseIdLike := flag.String("osReleaseIdLike", "", "/etc/os-release ID")
osReleaseName := flag.String("osReleaseName", "", "/etc/os-release ID")
osReleasePrettyName := flag.String("osReleasePrettyName", "",
"/etc/os-release ID")
rtb := flag.String("realtimeBefore", "-1", "before $EPOCHREALTIME") rtb := flag.String("realtimeBefore", "-1", "before $EPOCHREALTIME")
rta := flag.String("realtimeAfter", "-1", "after $EPOCHREALTIME") rta := flag.String("realtimeAfter", "-1", "after $EPOCHREALTIME")
rtsess := flag.String("realtimeSession", "-1", rtsess := flag.String("realtimeSession", "-1",
@ -103,7 +112,12 @@ func main() {
realPwd, err := filepath.EvalSymlinks(*pwd) realPwd, err := filepath.EvalSymlinks(*pwd)
if err != nil { if err != nil {
log.Println("err while handling realpath:", err) log.Println("err while handling pwd realpath:", err)
realPwd = ""
}
realPwdAfter, err := filepath.EvalSymlinks(*pwdAfter)
if err != nil {
log.Println("err while handling pwdAfter realpath:", err)
realPwd = "" realPwd = ""
} }
@ -112,6 +126,16 @@ func main() {
*gitRemote = "" *gitRemote = ""
} }
if *osReleaseId == "" {
*osReleaseId = "linux"
}
if *osReleaseName == "" {
*osReleaseName = "Linux"
}
if *osReleasePrettyName == "" {
*osReleasePrettyName = "Linux"
}
rec := common.Record{ rec := common.Record{
// core // core
CmdLine: *cmdLine, CmdLine: *cmdLine,
@ -128,19 +152,21 @@ func main() {
Login: *login, Login: *login,
Path: *path, Path: *path,
Pwd: *pwd, Pwd: *pwd,
PwdAfter: *pwdAfter,
ShellEnv: *shellEnv, ShellEnv: *shellEnv,
Term: *term, Term: *term,
// non-posix // non-posix
RealPwd: realPwd, RealPwd: realPwd,
Pid: *pid, RealPwdAfter: realPwdAfter,
ShellPid: *shellPid, Pid: *pid,
WindowId: *windowId, ShellPid: *shellPid,
Host: *host, WindowId: *windowId,
Hosttype: *hosttype, Host: *host,
Ostype: *ostype, Hosttype: *hosttype,
Machtype: *machtype, Ostype: *ostype,
Shlvl: *shlvl, Machtype: *machtype,
Shlvl: *shlvl,
// before after // before after
TimezoneBefore: *timezoneBefore, TimezoneBefore: *timezoneBefore,
@ -160,6 +186,12 @@ func main() {
GitOriginRemote: *gitRemote, GitOriginRemote: *gitRemote,
MachineId: readFileContent(machineIdPath), MachineId: readFileContent(machineIdPath),
ReshUuid: readFileContent(reshUuidPath), ReshUuid: readFileContent(reshUuidPath),
OsReleaseId: *osReleaseId,
OsReleaseVersionId: *osReleaseVersionId,
OsReleaseIdLike: *osReleaseIdLike,
OsReleaseName: *osReleaseName,
OsReleasePrettyName: *osReleasePrettyName,
} }
sendRecord(rec, strconv.Itoa(config.Port)) sendRecord(rec, strconv.Itoa(config.Port))
} }

@ -15,11 +15,13 @@ type Record struct {
Login string `json:"login"` Login string `json:"login"`
Path string `json:"path"` Path string `json:"path"`
Pwd string `json:"pwd"` Pwd string `json:"pwd"`
PwdAfter string `json:"pwdAfter"`
ShellEnv string `json:"shellEnv"` ShellEnv string `json:"shellEnv"`
Term string `json:"term"` Term string `json:"term"`
// non-posix"` // non-posix"`
RealPwd string `json:"realPwd"` RealPwd string `json:"realPwd"`
RealPwdAfter string `json:"realPwdAfter"`
Pid int `json:"pid"` Pid int `json:"pid"`
ShellPid int `json:"shellPid"` ShellPid int `json:"shellPid"`
WindowId int `json:"windowId"` WindowId int `json:"windowId"`
@ -48,6 +50,12 @@ type Record struct {
GitOriginRemote string `json:"gitOriginRemote"` GitOriginRemote string `json:"gitOriginRemote"`
MachineId string `json:"machineId"` MachineId string `json:"machineId"`
ReshUuid string `json:"reshUuid"` ReshUuid string `json:"reshUuid"`
OsReleaseId string `json:"osReleaseId"`
OsReleaseVersionId string `json:"osReleaseVersionId"`
OsReleaseIdLike string `json:"osReleaseIdLike"`
OsReleaseName string `json:"osReleaseName"`
OsReleasePrettyName string `json:"osReleasePrettyName"`
} }
type Config struct { type Config struct {

@ -8,6 +8,11 @@ PATH=$PATH:~/.resh/bin
export __RESH_RT_SESSION=$(date +%s.%N) export __RESH_RT_SESSION=$(date +%s.%N)
export __RESH_RT_SESS_SINCE_BOOT=$(cat /proc/uptime | cut -d' ' -f1) export __RESH_RT_SESS_SINCE_BOOT=$(cat /proc/uptime | cut -d' ' -f1)
export __RESH_SESSION_ID=$(cat /proc/sys/kernel/random/uuid) export __RESH_SESSION_ID=$(cat /proc/sys/kernel/random/uuid)
export __RESH_OS_RELEASE_ID=$(source /etc/os-release; echo $ID)
export __RESH_OS_RELEASE_VERSION_ID=$(source /etc/os-release; echo $VERSION_ID)
export __RESH_OS_RELEASE_ID_LIKE=$(source /etc/os-release; echo $ID_LIKE)
export __RESH_OS_RELEASE_NAME=$(source /etc/os-release; echo $NAME)
export __RESH_OS_RELEASE_PRETTY_NAME=$(source /etc/os-release; echo $PRETTY_NAME)
nohup resh-daemon &>/dev/null & disown nohup resh-daemon &>/dev/null & disown
__resh_preexec() { __resh_preexec() {
@ -77,6 +82,7 @@ __resh_precmd() {
# __RESH_RT_AFTER=$EPOCHREALTIME # __RESH_RT_AFTER=$EPOCHREALTIME
__RESH_RT_AFTER="$(date +%s.%N)" __RESH_RT_AFTER="$(date +%s.%N)"
__RESH_TZ_AFTER=$(date +%:z) __RESH_TZ_AFTER=$(date +%:z)
__RESH_PWD_AFTER="$PWD"
if [ ! -z ${__RESH_COLLECT+x} ]; then if [ ! -z ${__RESH_COLLECT+x} ]; then
resh-collect -cmdLine "$__RESH_CMDLINE" -exitCode "$__RESH_EXIT_CODE" \ resh-collect -cmdLine "$__RESH_CMDLINE" -exitCode "$__RESH_EXIT_CODE" \
-shell "$__RESH_SHELL" \ -shell "$__RESH_SHELL" \
@ -88,6 +94,7 @@ __resh_precmd() {
-login "$__RESH_LOGIN" \ -login "$__RESH_LOGIN" \
-path "$__RESH_PATH" \ -path "$__RESH_PATH" \
-pwd "$__RESH_PWD" \ -pwd "$__RESH_PWD" \
-pwdAfter "$__RESH_PWD_AFTER" \
-shellEnv "$__RESH_SHELL_ENV" \ -shellEnv "$__RESH_SHELL_ENV" \
-term "$__RESH_TERM" \ -term "$__RESH_TERM" \
-pid "$__RESH_PID" -shellPid "$__RESH_SHELL_PID" \ -pid "$__RESH_PID" -shellPid "$__RESH_SHELL_PID" \
@ -106,7 +113,12 @@ __resh_precmd() {
-realtimeSession "$__RESH_RT_SESSION" \ -realtimeSession "$__RESH_RT_SESSION" \
-realtimeSessSinceBoot "$__RESH_RT_SESS_SINCE_BOOT" \ -realtimeSessSinceBoot "$__RESH_RT_SESS_SINCE_BOOT" \
-timezoneBefore "$__RESH_TZ_BEFORE" \ -timezoneBefore "$__RESH_TZ_BEFORE" \
-timezoneAfter "$__RESH_TZ_AFTER" -timezoneAfter "$__RESH_TZ_AFTER" \
-osReleaseId "$__RESH_OS_RELEASE_ID" \
-osReleaseVersionId "$__RESH_OS_RELEASE_VERSION_ID" \
-osReleaseIdLike "$__RESH_OS_RELEASE_ID_LIKE" \
-osReleaseName "$__RESH_OS_RELEASE_NAME" \
-osReleasePrettyName "$__RESH_OS_RELEASE_PRETTY_NAME"
fi fi
unset __RESH_COLLECT unset __RESH_COLLECT
} }

Loading…
Cancel
Save