Module: WinAlias

Defined in:
lib/win_alias/cli.rb,
lib/win_alias/util.rb,
lib/win_alias/alias.rb,
lib/win_alias/version.rb

Defined Under Namespace

Classes: Alias

Constant Summary collapse

VERSION =
'0.1.1'.freeze

Class Method Summary collapse

Class Method Details

.add_to_pathObject



20
21
22
23
24
25
26
27
28
# File 'lib/win_alias/util.rb', line 20

def self.add_to_path
  return true if in_path?
  warn("About to add win-alias/bin to PATH. A backup of your paths will be saved @ #{File.join(base_path, 'path_backup.txt')} in case something goes wrong.")
  error("NOTE: It is recommdned you verify your PATH in another shell after this is run. Some versions of Windows can cause the PATH to be truncated at 1024 characters.")
  backup_path_variable
  ENV['PATH'] = ENV['PATH'] + ";#{path}"
  `setx /M PATH "#{ENV['PATH']}"`
  in_path?
end

.backup_path_variableObject



30
31
32
33
34
35
# File 'lib/win_alias/util.rb', line 30

def self.backup_path_variable
  backup = File.join(base_path, 'path_backup.txt')
  lines = File.exist?(backup) ? File.read(backup).split("\n") : []
  lines += ENV['PATH'].split(';')
  lines.uniq.join("\n").to_file(backup, mode: 'w')
end

.base_pathObject



8
9
10
# File 'lib/win_alias/util.rb', line 8

def self.base_path
  ENV['WIN_ALIAS_HOME'] || File.join(Dir.home, 'win_alias')
end

.in_path?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/win_alias/util.rb', line 16

def self.in_path?
  ENV['PATH'].include?(path)
end

.pathObject



12
13
14
# File 'lib/win_alias/util.rb', line 12

def self.path
  File.join(base_path, 'bin')
end