source: projects/emacsen-common/trunk/scripts/change-default-flavors.rb @ 7238

Revision 7238, 1.5 KB checked in by daisuke, 11 years ago (diff)

import emacsen-common

Line 
1#!/usr/bin/ruby
2# usage: change-default-flavor emacs-21.0.104 ?
3# usage: reverse-default-flavor
4# usage: change-temporary-flavor emacs-21.0.104 ?
5
6require "ftools"
7
8prefix="/"
9# prefix="/"
10
11case $0
12when /change-default/
13  action = "change"
14when /~reverse/
15  action = "reverse"
16when /change-temporary/
17  action = "temporary"
18end
19
20flavor = ARGV[0] if ARGV[0] != nil
21
22
23lib_dir = prefix+"/usr/lib/emacsen-common"
24var_dir = prefix+"/var/lib/emacsen-common"
25
26
27def getCurrentFlavor(var_dir = "/")
28  array =  open(var_dir+"/installed-flavors").readlines
29  return array.pop
30end
31
32def removeFlavor(flavor,var_dir = "/")
33  array =  open(var_dir+"/installed-flavors").readlines
34  array.delete(flavor)
35  return array
36end
37
38# synlink ¤ÎÊѹ¹
39
40def changeLink(emacs,dir="/usr/bin/")
41  Dir.open(dir).each{ |name|
42    fullpath = dir+name
43    if fullpath =~/\.#{emacs}$/
44    then
45      srcname = fullpath
46      distname = fullpath.dup
47      distname.sub!(/\.#{emacs}$/,"")
48      File.unlink(distname) if File.symlink?(distname)
49      File.symlink(srcname,distname)
50    end
51
52  }
53
54end
55def writeFlavor(var_dir,flavors)
56  a = open(prefix+var_dir+"/installed-flavors","w")
57  flavors.each{ |flavor|
58    a.write(flavor+"\n")
59  }
60end
61
62case action
63when /change/
64  # ¥Ç¥Õ¥©¥ë¥È flavor ¤ÎÊѹ¹
65  current_flavor = getCurrentFlavor(var_dir)
66  flavors = removeFlavor(var_dir,current_flavor)
67  flavors.push(flavor+"\n")
68  changeLink(flavor)
69  writeFlavor(flavors)
70when /temporary/
71  # °ì»þŪ¤Êflavor ¤ÎÊѹ¹
72  changeLink(flavor)
73when /reverse/
74  current_flavor = getCurrentFlavor(var_dir)
75  changeLink(current_flavor)
76end
Note: See TracBrowser for help on using the repository browser.