do automate things on Linux
Project description
auto_everything
Linux(mainly ubuntu) automation
Installation
sudo pip3 install auto_everything
or
wget https://github.com/yingshaoxo/auto_everything/raw/master/env_setup.sh
sudo bash env_setup.sh
Magic
wget https://github.com/yingshaoxo/auto_everything/raw/master/demo/install_YouCompleteMe.py
python3 install_YouCompleteMe.py
Docs
https://yingshaoxo.github.io/auto_everything
Basic API
Import
from auto_everything.base import Terminal
t = Terminal()
Run a command and get reply
reply = t.run_command('uname -a')
print(reply)
Run commands and get direct screen output
commands = """
sudo apt update
uname -a
"""
t.run(commands)
Run a program
t.run_program('firefox')
Run a python script
t.run_py('your_file.py')
Run a bash script
t.run_sh('your_file.sh')
Detect if a program or script is running
status = t.is_running('terminal')
print(status)
Kill it
t.kill('terminal')
For simplify Python development
Import
from auto_everything.base import Python
py = Python()
Turn Python Class
into a Command Line Program
py.fire(your_class_name)
Make it global executable
:
py.make_it_global_runnable(executable_name="Tools")
Example
Let's assume you have a file named Tools.py
:
from auto_everything.base import Python
py = Python()
class Tools():
def push(self, comment):
t.run('git add .')
t.run('git commit -m "{}"'.format(comment))
t.run('git push origin')
def pull(self):
t.run("""
git fetch --all
git reset --hard origin/master
""")
def undo(self):
t.run("""
git reset --mixed HEAD~1
""")
def reset(self):
t.run("""
git reset --hard HEAD^
""")
def hi(self):
print("Hi, Python!")
py.fire(Tools)
py.make_it_global_runnable(executable_name="MyTools")
After the first running of this script by python3 Tools.py hi
, you would be able to use MyTools
to run this script at anywhere within your machine:
yingshaoxo@pop-os:~$ MyTools hi
Hi, Python!
Others
Web automation
from auto_everything.web import Selenium
from time import sleep
my_selenium = Selenium("https://www.google.com", headless=False)
d = my_selenium.driver
# get input box
xpath = '//*[@id="lst-ib"]'
elements = my_selenium.wait_until_exists(xpath)
# text inputing
elements[0].send_keys('\b' * 20, "yingshaoxo")
# click search button
elements = my_selenium.wait_until_exists('//input[@value="Google Search"]')
if len(elements):
elements[0].click() # d.execute_script("arguments[0].click();", elements[0])
# exit
sleep(30)
d.quit()
Simpler IO
from auto_everything.base import IO
io = IO()
io.write("hi.txt", "Hello, world!")
print(io.read("hi.txt"))
io.append("hi.txt", "\n\nI'm yingshaoxo.")
print(io.read("hi.txt"))
Quick File Operation
from auto_everything.disk import Disk
from pprint import pprint
disk = Disk()
files = disk.get_files(".")
files = disk.sort_files_by_time(files)
pprint(files)
Easy Store
from auto_everything.disk import Store
store = Store("test")
store.set("author", "yingshaoxo")
store.set("author", {"email": "yingshaoxo@gmail.com", "name": "yingshaoxo"})
print(store.get_items())
print(store.has_key("author"))
print(store.get("author", ""))
print(store.get("whatever", default_value="alsjdasdfasdfsakfla"))
store.reset()
print(store.get_items())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
auto_everything-3.7.tar.gz
(33.4 kB
view hashes)
Built Distribution
Close
Hashes for auto_everything-3.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 751576f1c83f5e59db539a222886a15a8a13386cdf4b11c139ac7212a0739132 |
|
MD5 | c703994e647de60e11005f091a09474f |
|
BLAKE2b-256 | c2cb064abc2fd5e0b4b9e977dd42b7f3b7cfede86260b15bcc85a5bac56c73f7 |