Last active
December 15, 2015 22:59
-
-
Save karljacuncha/5336562 to your computer and use it in GitHub Desktop.
Siobhan's Setup:
A simple python script to configure Rasbian after a clean install.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
""" | |
Siobhan's Setup | |
karl@symbollix.org | |
2013-04-01 | |
http://symbollix.org/code/tardis/ | |
A simple python script to configure Rasbian after a clean install (to a specific setup). | |
Does the following steps | |
Update system | |
Install transmission | |
Overclock & send audio over hdmi | |
Set OMXPlayer as a desktop app | |
Create default folders & shortcuts | |
And definitely not hack into the pentagon. | |
Run as: | |
sudo python SiobhansSetup.py | |
But yeah, don't just run this script as-is. | |
I'm just sharing it out as an example for what you could do to make things a a bit easier | |
if you're doing a bunch to testing with re-flashing sd cards and such, or if it's easier | |
to write up what you need to do on your main desktop, then dump a script over to the Pi. | |
Things to look out for: | |
There's pretty much no error checking in this. | |
It's written and tested with Raspbian Feb, 2013 (Debian 7), and likely to break in | |
newer or older versions. | |
All files are created as temp files first, then moved into place. | |
And yeah, the script has gotten a bit copy-and-pastey-messy and I probably should use | |
dedent to clean up these printed strings, and blab blah blah, but hey it's just a dumb | |
setup script to avoid a bunch of command line work. | |
And yeah - it doesn't really matter what your name is, just delete from "if 'yourname'... | |
to "else:" and dedent the rest. | |
But hrm - if I have to explain that then you really shouldn't be running this so blindly, | |
you never know what sort of mischevious doings I might have included in here. mwahahaha. | |
""" | |
import optparse | |
import os | |
import sys | |
import json | |
import base64 | |
def main(): | |
description = """ Siobhan's Setup: Update system, Overclock & send audio over hdmi, | |
set OMXPlayer as a desktop app, install Transmission client.""" | |
usage = "usage: sudo %prog " | |
version = "%prog version 0.1" | |
p = optparse.OptionParser(description=description, | |
usage=usage, | |
version=version) | |
options, arguments = p.parse_args() | |
if 'yourname' is not 'Siobhan': | |
print """ | |
BOO! HISS! This script isn't for you! | |
...or in simpler terms, don't just run an OS-modifying script on your system without | |
checking what it actually does first. | |
Read the source/description first: http://symbollix.org/code/tardis/ | |
""" | |
else: | |
print ''' | |
1. Do a general system update: | |
''' | |
os.system('sudo apt-get -y update') | |
os.system('sudo apt-get -y upgrade') | |
# os.system('sudo apt-get -y autoremove') # to clear any dead files | |
print ''' | |
2a. Install transmission client: | |
''' | |
os.system('sudo apt-get -y install transmission') | |
''' | |
2b. If you do want the full daemon server: | |
(from here: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=22218 ) | |
uncomment this next bunch: | |
os.system('sudo apt-get -y install transmission transmission-daemon') | |
os.system('sudo service transmission-daemon start') | |
os.system('sudo service transmission-daemon stop') | |
settings_file = '/etc/transmission-daemon/settings.json' | |
settings = json.load(open(settings_file)) | |
settings["rpc-whitelist-enabled"] = False | |
settings["rpc-enabled"] = True | |
settings["rpc-username"] = 'pi' | |
settings["rpc-password"] = 'raspberry' | |
json.dump(settings, open(settings_file, 'w'), indent=4, sort_keys=True) | |
os.system('sudo service transmission-daemon start') | |
''' | |
print ''' | |
3. Update boot/config to: | |
* use hdmi | |
* allow audio over hdmi | |
* apply 'mild' overclocking setting | |
* double the ram for the gpu | |
''' | |
tmp_file = '/tmp/boot_config.txt' | |
dst_file = "/boot/config.txt" | |
input = open(dst_file) | |
config_text = input.read() | |
input.close() | |
if "#hdmi_drive=2" in config_text: | |
# force hdmi: | |
config_text = config_text.replace("#hdmi_drive=2", "hdmi_drive=2") | |
# mild overclock settings: | |
config_text = config_text.replace("#arm_freq=800", "arm_freq=800") | |
config_text = config_text.replace("gpu_mem=64", """gpu_mem=128 | |
core_freq=300 | |
# modified by SiobhansSetup.py: http://symbollix.org/code/tardis/ | |
""") | |
output = open(tmp_file, "w") | |
output.write(config_text) | |
output.close() | |
os.system('sudo mv %s %s' % (tmp_file, dst_file)) | |
print ''' | |
4. Create desktop app entry for OMXPlayer: | |
''' | |
tmp_file = '/tmp/omxplayer.desktop' | |
dst_file = "/usr/share/applications/omxplayer.desktop" | |
output = open(tmp_file, 'w') | |
output.write("""[Desktop Entry] | |
Type=Application | |
Name=OMXPlayer | |
Categories=AudioVideo;Player; | |
Exec=lxterminal --command "omxplayer -o hdmi -t on --align center %f" | |
Terminal=false | |
Icon=/usr/share/icons/nuoveXT2/96x96/categories/applications-multimedia.png | |
""") | |
output.close() | |
os.system('sudo mv %s %s' % (tmp_file, dst_file)) | |
print ''' | |
5. set up standard folders & shortcuts. | |
adds network & the proper apps link to the sidebar | |
''' | |
tmp_file = '/tmp/.gtk-bookmarks' | |
dst_file = "/home/pi/.gtk-bookmarks" | |
bkmk_file = """network:/// Network | |
file:///usr/share/applications Apps""" | |
dirlist = ['Music','Movies', 'Pictures'] | |
for d in dirlist: | |
path = '/home/pi/' + d | |
if not os.path.isdir(path): | |
os.makedirs(path) | |
bkmk_file = bkmk_file + "\nfile://" + path + " " + d | |
output = open(tmp_file, 'w') | |
output.write(bkmk_file) | |
output.close() | |
os.system('sudo mv %s %s' % (tmp_file, dst_file)) | |
# and a few other cleaning up bits: | |
# create file browser link on desktop: | |
os.system('cp /usr/share/applications/pcmanfm.desktop /home/pi/Desktop/') | |
# use a proper browser in the launch bar: | |
tmp_file = '/tmp/panel' | |
dst_file = '/home/pi/.config/lxpanel/LXDE/panels/panel' | |
input = open(dst_file) | |
config_text = input.read() | |
input.close() | |
if "lxde-x-www-browser.desktop" in config_text: | |
config_text = config_text.replace("lxde-x-www-browser.desktop", "midori.desktop") | |
output = open(tmp_file, "w") | |
output.write(config_text) | |
output.close() | |
os.system('sudo mv %s %s' % (tmp_file, dst_file)) | |
# hack into the pentagon | |
os.system('haxxor the-pentagon') | |
# and plant a virus: | |
print base64.b64decode('VGhpcyBpcyB0aGUgQ0lBLCB3ZSd2ZSBnb3QgYWxsIHlvdXIgZGV0YWlscyBub3csIHByZXBhcmUgdG8gYmUgZXh0cmFvcmRpbmFyaWx5IHJlbmRpdGlvbmVkLi4u') | |
print ''' | |
Done. | |
You probably need to reboot now, but I'll leave that up to you. | |
''' | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment