Skip to content

Instantly share code, notes, and snippets.

@iansheridan
Forked from goyalankit/bash_to_zsh_history.rb
Last active July 11, 2017 10:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iansheridan/a2dc897f373ec27ce4bc to your computer and use it in GitHub Desktop.
Save iansheridan/a2dc897f373ec27ce4bc to your computer and use it in GitHub Desktop.
#################################################################
# = This script transfers bash history to zsh history
# = Change bash and zsh history files, if you don't use defaults
#
# = Usage: ruby bash_to_zsh_history.rb
#
# = OrgAuthor: Ankit Goyal
# = Author: Ian Sheridan
#################################################################
# change if you don't use default values
BASH_HISTORY_FILE_PATH="#{ENV['HOME']}/.bash_history"
ZSH_HISTORY_FILE_PATH="#{ENV['HOME']}/.zsh_history"
# Read the bash history file
bash_hist_file = File.read(BASH_HISTORY_FILE_PATH)
# Get the list of commands from bash history hile
command_list = bash_hist_file.split("\n")
# Open the zsh history file
zsh_hist_file = File.open(ZSH_HISTORY_FILE_PATH, "a")
puts '# Importing Commands ##############################################'
puts ''
# Get timestamp required for zsh history file format and update the history file
time = Time.now.to_i
command_list.each do |command|
time += 1
zsh_hist_file.write(": #{time}:0;#{command}\n")
puts command
end
# Close the file
zsh_hist_file.close
puts ''
puts '# Importing DONE ##################################################'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment